使用未翻译的语言安装时,Install4j会生成带有NoClassDefFoundError的error.log

时间:2011-11-17 07:08:37

标签: encoding noclassdeffounderror install4j

我正在使用install4j,它适用于我们有翻译的10种语言,但是如果用户试图安装在使用其他语言(例如俄语或爱沙尼亚语)的(Windows XP)计算机上,则会出错。日志文件在包含安装程序的目录中创建。安装完成时没有任何明显的问题,可以选择运行语言,但也会创建错误日志。

  1. 我做错了什么?或者我可以抑制错误吗?
  2. 这是在install4j的更高版本中修复的(我在更改日志中看不到任何提及,要求我们的构建机器的install4j升级是非常重要的)
  3. 是否已经有一个open install4j错误?
  4. 我是否需要收集更多诊断信息?
  5. 任何想法?

    娱乐步骤:

    1. 控制面板 - >区域与语言设置 - >区域选项 - >标准与Formats->爱沙尼亚语
    2. 运行安装程序
    3. Error.log然后包含:

    4. java.lang.NoClassDefFoundError: sun.awt.AppContext$PostShutdownEventRunnable
      at sun.awt.AppContext.stopEventDispatchThreads(AppContext.java:535)
      at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:296)
      at java.lang.Thread.run(Thread.java:736)
      
      java.lang.NoClassDefFoundError: java.nio.charset.Charset$3
      at java.nio.charset.Charset.probeExtendedProvider(Charset.java:397)
      at java.nio.charset.Charset.lookupExtendedCharset(Charset.java:420)
      at java.nio.charset.Charset.lookup2(Charset.java:454)
      at java.nio.charset.Charset.lookup(Charset.java:440)
      at java.nio.charset.Charset.isSupported(Charset.java:486)
      at sun.nio.cs.StreamEncoder.forOutputStreamWriter(StreamEncoder.java:79)
      at java.io.OutputStreamWriter.<init>(OutputStreamWriter.java:91)
      at com.exe4j.runtime.util.WinDel.scheduleDeletion(Unknown Source)
      at com.exe4j.runtime.WinLauncher$3.run(Unknown Source)
      

1 个答案:

答案 0 :(得分:1)

error.log实际上不是来自安装程序进程,而是来自安装程序退出时启动的清理进程。清理过程将删除已将安装程序解压缩到的临时目录。由于此异常,该临时目录可能尚未删除。安装的完整性尚未受到影响。

有趣的是,只有在JRE中没有编码“UTF-16LE”时才会出现此错误。但是,这是have to be available的基本编码之一。所以看起来JRE中存在一个在这种特定情况下触发的错误。