Install4j выдает error.log с NoClassDefFoundError при установке на непереведенном языке - PullRequest
0 голосов
/ 17 ноября 2011

Я использую install4j, и он отлично работает для 10 языков, для которых у нас есть переводы, однако, если пользователь пытается установить на (Windows XP) машину, которая использует другой язык, например русский или эстонский, то возникает ошибка. Файл журнала создается в каталоге, содержащем установщик. Установка завершается без каких-либо видимых проблем и дает выбор языка для запуска, но также создает журнал ошибок.

  1. Я что-то не так делаю? Или я могу подавить ошибку?
  2. Исправлено ли это в более поздних версиях install4j (я не вижу упоминаний в журналах изменений, и нетривиально просить обновить install4j нашей сборочной машины)
  3. Есть ли уже открытая ошибка install4j?
  4. Нужно ли собирать больше диагностики?

есть идеи?

Шаги для отдыха:

  1. Панель управления-> Региональные и языковые настройки-> Региональные параметры-> Стандарты и форматы-> Эстонский
  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 Ответ

1 голос
/ 17 ноября 2011

error.log на самом деле не из процесса установки, а из процесса очистки, который запускается при выходе из программы установки. Процесс очистки удаляет временный каталог, в который был извлечен установщик. Из-за этого исключения этот временный каталог, вероятно, не был удален. Целостность установки не пострадала.

Интересно, что эта ошибка может произойти, только если кодировка "UTF-16LE" недоступна в JRE. Однако это одна из базовых кодировок, которые должны быть доступны . Похоже, в JRE есть ошибка, которая возникает в этой конкретной ситуации.

...