Обновление Java 7 25 не работает, если другая версия Java уже существует

Я пытаюсь установить java из сценария установки экрана. 1) У меня нет другой версии Java на моем ПК. Когда я устанавливаю Java 7 без проблем, он устанавливается правильно

2) Если у меня есть какая-либо другая версия java, уже установленная на моем ПК, и я пытаюсь установить Java 7 без проблем

У нас есть возможность установить java молча, хотя он обнаруживает, что еще одна версия java уже установлена?

1 ответ

Почему установка не работает?

Первое, что вы, вероятно, должны сделать, это выяснить, почему установка JRE не работает. В версии Windows это требует некоторых параметров командной строки, которые могут вам пригодиться. Для ведения журнала /L создаст файл журнала.

Обычно я извлекаю MSI из EXE, доступного Oracle. Использование MSI напрямую позволяет вам указать свойства установки, не обращая внимания на синтаксис командной строки InstallShield goofy. Если вы запустите EXE, загруженный из Oracle (но не продолжайте - просто разрешите его извлечь), посмотрите в AppData\LocalLow\Sun\Java пользователя AppData\LocalLow\Sun\Java для каталога, соответствующего версии Java, установщик которой вы только что запустили (например, jre1.7.0_25). Получите MSI и другие файлы оттуда.

В MSI вы можете указать параметры ведения журнала в командной строке, например msiexec/i <jre_msi_file>/lxv* C:\temp\jre_install.log</jre_msi_file>.

Я уверен, что видел случаи, когда установщики JRE эффективно блокируют установку более старой ("менее безопасной") версии. Возможно, это то, что происходит в вашем случае. Вы должны увидеть это в файле журнала установки. В этом случае, я думаю, есть раздел реестра, который вы можете удалить, чтобы "разблокировать" установку.

Статический и патч-на-месте

Другим потенциальным источником проблем является тип установки, которую вы хотите (или ранее использовавшийся). У Oracle есть два метода установки, которые вам могут потребоваться прямо указать при его установке.

Установка исправления на месте всегда оставляет единственную версию JRE, удаляющую старую (или обновляя ее - я не уверен в деталях, как это делается), и оставляя новую на своем месте. Это поведение по умолчанию, и, вероятно, вы захотите его использовать. Браузеры могут использовать только одну версию Java за раз, поэтому нет оснований для того, чтобы иметь более старые версии, если вас интересует только наличие Java в браузере.

Статическая установка создает новую установку Java для каждого уникального номера версии. Это было бы полезно, если бы вам нужно было выбирать среди некоторых точных версий Java для конкретных приложений. Программы, основанные на причудливом/недокументированном поведении конкретных реализаций Java VM, возможно, должны использовать такую установку. В общем, однако, такого рода вещи следует избегать, если не по какой-либо другой причине, а не оставлять версии JRE с известными (и активно используемыми) уязвимостями безопасности.

Вы можете указать тип установки в командной строке с STATIC=0 (установка исправления на месте) или STATIC=1. Это должно работать либо с EXE, либо с MSI.

licensed under cc by-sa 3.0 with attribution.