2011-11-17 24 views
0

我使用的是install4j,對於我們翻譯的10種語言,它工作正常,但是如果用戶嘗試在(Windows XP)機器上安裝,使用另一種語言,例如俄語或愛沙尼亞語,然後在包含安裝程序的目錄中創建error.log文件。安裝完成後沒有任何明顯的問題,並且可以選擇要運行的語言,但也會創建錯誤日誌。Install4j使用NoClassDefFoundError以非翻譯語言安裝時生成error.log

  1. 我做錯了什麼?還是我可以壓制這個錯誤?
  2. 是這個固定在install4j的更高版本(我看不出在更改日誌提及任何和它的不平凡,要求我們構建機器的install4j升級)
  3. 是否存在已經是公開的install4j錯誤?
  4. 我是否需要收集更多的診斷信息?

有什麼想法嗎?

娛樂步驟:

  1. 控制面板 - >區域&語言設置 - >區域選項 - >標準& Formats->愛沙尼亞
  2. 運行安裝
  3. error.log中然後包含:

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

error.log實際上不是來自安裝程序進程,而是來自安裝程序退出時啓動的清理進程。清理過程刪除安裝程序已被提取到的臨時目錄。由於此例外情況,該臨時目錄可能未被刪除。安裝的完整性沒有受到影響。

有趣的是,只有編碼「UTF-16LE」在JRE中不可用時纔會發生此錯誤。但是,這是have to be available的基本編碼之一。所以看起來在這個特定情況下觸發了JRE中的一個錯誤。

+0

有趣的我會嘗試切換JRE作爲測試(我通常不使用Sun/Oracles JRE)。當我使用不支持的語言時,這個清理過程只會失敗,這似乎很奇怪。 – TLAminion