Как обнаружить, предотвратить и исправить повреждение реестра java windows (т. Е. "Не удалось найти java.dll") - PullRequest
0 голосов
/ 22 февраля 2012

Проблема: java.exe жалуется на dll

Мы используем инструмент, который копирует и переименовывает java.exe во временный каталог, т.е. / path / to / some / dir/java_foo_application.exe.[Инструментом является «Ещё один Java Service Wrapper» или YAJSW.Он копирует и переименовывает, чтобы значимые имена отображались в диспетчере задач Windows]

На некоторых машинах поврежденные записи Java в реестре Windows выдают эту ошибку при запуске этого скопированного файла java.exe:

Error opening registry key 'Software\JavaSoft\Java Runtime Environment'
Error: could not find java.dll
Error: could not find Java SE Runtime Environment.

Решено однажды: Удалите и переустановите

У меня была эта проблема однажды: я решил ее, удалив все jdk - используя окна «Добавить удаление программ» -и переустановка более новой версии Java.

Обратите внимание, что один из JDK не будет удален.Мне пришлось скачать специальный очиститель реестра от Microsoft, чтобы принудительно удалить.

Мой вопрос: Обнаружение и предотвращение?

  • Как можно заранее определить, является ли системаесть поврежденные записи реестра Java?
  • Как предотвратить это повреждение в будущем?
  • Есть ли другие способы исправить это, кроме удаления и повторной установки jdk's?

Спасибо.

Ответы [ 2 ]

1 голос
/ 12 июня 2012

Чтобы узнать, в чем реальная проблема, скачайте два jar-файла:

первый и второй

не забудьте установить: wrapper.console.pipestreams = true

Описано на этой странице

Файл журнала Wrapper показывает мне эту трассировку:

-установить состояние RESTART_START-> RUNNING

- ключ реестра 'Software \ JavaSoft \ Java Runtime Environment \ CurrentVersion' имеет значение «1,5», но требуется «1,6».

-Ошибка: не удалось найти java.dll

-Ошибка: не удалось найти среду выполнения Java 2. процесс прекращен Состояние контроллера: WAITING -> PROCESS_KILLED

Я решаю свою проблему переустановки System JRE 1.6.

С уважением!

0 голосов
/ 22 февраля 2012

Вместо того, чтобы возиться с javaw, вы можете использовать исполняемую оболочку для запуска вашего приложения. См. Например exe4j или JSmooth .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...