Как предотвратить установку java.exe в Windows32?
Есть ли способ предотвратить, что процедура установки Java (например, jdk-7u1-windows-i586.exe) копирует java.exe в каталог C:\Windows\system32
?
Мне нужно установить мое программное обеспечение на клиентский ноутбук, и я не хочу разорвать другие приложения Java, которые уже установлены на компьютере. Другими словами, я хочу установить закрытый JRE, который используется только моим программным обеспечением.
К настоящему времени я скопировал уже установленную JRE с моего компьютера на клиентскую машину.
Ответы
Ответ 1
Вчера я обнаружил, что существует проблема с версиями Java в Windows, так как вы знаете, что обновление java в актуальном состоянии в наши дни имеет решающее значение, особенно JRE, используемое Internet Explorer, расположенным в системе Windows32 или syswow64.
Вы можете выполнить поиск java на своем диске C: и посмотреть на различные исполняемые файлы, которые он находит, чтобы определить, применима ли ситуация к конкретной системе.
После ряда исследований я обнаружил, что при запуске Java updater он обновляет только файлы, установленные в доме JAVA, обычно находящиеся в файлах программы, но не обновляет файлы, расположенные в системной папке Windows. В результате, и поскольку системная папка находится в системе PATH по умолчанию, использование Internet Explorer продолжает использовать старую версию файлов JAVA (java.exe, javaw.exe, javaws.exe)
решение - удалить java с помощью функции удаления программной панели, загрузить последнюю версию и снова установить.
Ура!
Фернандо
Ответ 2
Недавно я обновился до java 8 и обнаружил эту проблему, так как java-версия под system32 по-прежнему была java 7. Она останавливает даже запущенную версию, поскольку она жалуется на ключи реестра
U:\>java -version
Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'
has value '1.8', but '1.7' is required.
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.
Далее я указал на виновника:
U:\>where java
C:\Windows\System32\java.exe
C:\Program Files\Java\jdk1.8.0_45\bin\java.exe
Я решил эту проблему, просто удалив java под system32! Я не уверен, какие последствия это будет иметь.
Ответ 3
Вы можете просто предоставить JRE, который хотите использовать на своем программном обеспечении, и:
- Задайте переменную
JAVA_HOME
перед запуском приложения
- Укажите правильный файл java.exe(например,
..\jre1.5.0_22\bin\java <your_java_main>
)
Это может быть сделано в файле *.bat, например.
После запуска созданного *.bat файла вся другая версия java будет проигнорирована, и не имеет значения, какие версии будут или будут установлены на этом компьютере.
Ответ 4
Один из способов попытаться создать пустой файл с записью с именем java.exe в папку System32.
Ответ 5
Я обнаружил, что новый JDK по-прежнему не пишет правильный код для реестра.
Проблема в том, что на компьютере нет JRE, JDK не регистрирует JRE в реестре правильно.
Для тех, кто устанавливает JDK 1.7u72 Просто добавьте Software\JavaSoft\Java Runtime Environment, как указано в сообщении об ошибке. И добавьте строковую запись CurrentVersion со значением 1.7.
Затем добавьте Software\JavaSoft\Java Runtime Environment\1.7 и поместите строку строки JavaHome со значением "C:\Program Files\Java\jre7". И JRE будет функционировать правильно.
Поражайте Oracle, если вы используете реестр, тогда напишите правильный код, иначе не используйте Registry!
Ответ 6
Все, что вам нужно сделать, это перейти в Панель управления → Программы. Удалить программу. Удалите старые обновления java и сохраните новейшие обновления для java и обновления для разработки java. Новое обновление java-обновления и обновления для Java-версии должно иметь одинаковый номер.