Вопрос или проблема
Мы хотим установить Java 8 обновление 60 в тихом режиме через его msi. Установка останавливается с неопределенной ошибкой, что не помогает в поиске решения.
Вот журнал MSI:
=== Начато подробное журналирование: 10.09.2015 07:42:04 Тип сборки: SHIP UNICODE 5.00.7601.00 Процесс вызова: D:\Service\JRE\jre-8u60-windows-i586.exe ===
MSI (c) (90:48) [07:42:04:015]: Сбрасываются кэшированные значения политик
MSI (c) (90:48) [07:42:04:015]: Значение машинной политики 'Debug' равно 0
MSI (c) (90:48) [07:42:04:015]: ******* RunEngine:
******* Продукт: C:\windows\system32\config\systemprofile\AppData\LocalLow\Oracle\Java\jre1.8.0_60\jre1.8.0_60.msi
******* Действие:
******* CommandLine: **********
MSI (c) (90:48) [07:42:04:015]: Клиентская сторона и UI отсутствуют или базовые: Запуск всей установки на сервере.
MSI (c) (90:48) [07:42:04:015]: Захвачена мьютекс выполнения.
MSI (c) (90:48) [07:42:04:015]: Активация сокрытия.
MSI (c) (90:48) [07:42:04:015]: Попытка включить все отключенные привилегии перед вызовом Install на сервере
MSI (c) (90:48) [07:42:04:015]: Увеличение счетчика для отключения завершения работы. Счетчик после увеличения: 0
MSI (s) (68:78) [07:42:04:031]: Запуск установки внутри многопакетной транзакции C:\windows\system32\config\systemprofile\AppData\LocalLow\Oracle\Java\jre1.8.0_60\jre1.8.0_60.msi
MSI (s) (68:78) [07:42:04:031]: Захвачена мьютекс выполнения.
MSI (s) (68:F4) [07:42:04:031]: Сбрасываются кэшированные значения политик
MSI (s) (68:F4) [07:42:04:031]: Значение машинной политики 'Debug' равно 0
MSI (s) (68:F4) [07:42:04:031]: ******* RunEngine:
******* Продукт: C:\windows\system32\config\systemprofile\AppData\LocalLow\Oracle\Java\jre1.8.0_60\jre1.8.0_60.msi
******* Действие:
******* CommandLine: **********
MSI (s) (68:F4) [07:42:04:031]: Примечание: 1: 2203 2: C:\windows\system32\config\systemprofile\AppData\LocalLow\Oracle\Java\jre1.8.0_60\jre1.8.0_60.msi 3: -2147287037
MSI (s) (68:F4) [07:42:04:031]: MainEngineThread возвращает 3
MSI (s) (68:78) [07:42:04:031]: Значение пользовательской политики 'DisableRollback' равно 0
MSI (s) (68:78) [07:42:04:031]: Значение машинной политики 'DisableRollback' равно 0
MSI (s) (68:78) [07:42:04:031]: Увеличение счетчика для отключения завершения работы. Счетчик после увеличения: 0
MSI (s) (68:78) [07:42:04:031]: Примечание: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2
MSI (s) (68:78) [07:42:04:031]: Примечание: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2
MSI (s) (68:78) [07:42:04:031]: Примечание: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\InProgress 3: 2
MSI (s) (68:78) [07:42:04:031]: Примечание: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\InProgress 3: 2
MSI (s) (68:78) [07:42:04:031]: Уменьшение счетчика для отключения завершения работы. Если счетчик >= 0, завершение работы будет отклонено. Счетчик после уменьшения: -1
MSI (s) (68:78) [07:42:04:031]: Восстановление переменных окружения
MSI (c) (90:48) [07:42:04:031]: Уменьшение счетчика для отключения завершения работы. Если счетчик >= 0, завершение работы будет отклонено. Счетчик после уменьшения: -1
MSI (c) (90:48) [07:42:04:031]: MainEngineThread возвращает 3
=== Подробное журналирование остановлено: 10.09.2015 07:42:04 ===
Наша система запускает MSI с следующими параметрами:
jre-8u60-windows-i586.exe /s /L D:\Service\JRE\setup8u60.log
На данный момент мы убедились, что не запущена другая установка и что Java полностью удалена заранее, так как это были единственные указания, которые мы нашли в Интернете.
Любой совет будет полезен!
Java 8 становится проблемой для массового развертывания.
На этот раз,
я думаю, что это проблема с exe в 8u60, он работал раньше с 8u51 и 8u45.
Если вы посмотрите журнал, он пытается открыть msi на C:\windows\system32, и я предполагаю, что он ничего не находит там. В Java 8u51 и 45… это работало, потому что он пытался открыть на C:\windows\syswow64.
Решение, которое сработало для меня:
- Извлеките MSI -> http://www.techygeekshome.co.uk/2014/01/java-msi-extraction-from-windows-7-and.html
Реальный путь, где будет находиться, это %userprofile%\AppData\LocalLow\Oracle\Java\jre1.8.0_60 - Скопируйте msi в C:\windows\system32\config\systemprofile\AppData\LocalLow\Oracle\Java\jre1.8.0_60\jre1.8.0_60.msi
-
Запустите установщик (.exe), как вы это сделали. В моем случае я использую:
jre.exe INSTALL_SILENT=1 STATIC=0 AUTO_UPDATE=0 WEB_JAVA=1 WEB_JAVA_SECURITY_LEVEL=H WEB_ANALYTICS=0 EULA=0 REBOOT=0 NOSTARTMENU=1 /L C:\temp\jre-8u60.log
ПРИМЕЧАНИЕ:
В 8u51 и 8u45 я также должен был скопировать java.setting.cfg в C:\ProgramData\Oracle\Java перед установкой:
http://www.edugeek.net/forums/enterprise-software/143767-java-8-update-25-silent-install-via-sccm-10.html#post1333454
Чтобы попробовать это правильно:
Я предполагаю, что вы запускаете exe как SYSTEM (возможно, SCCM?).
Чтобы протестировать, вы можете попробовать установить в CMD как SYSTEM, откройте консоль и выполните:
PSEXEC -i -s -d CMD
Затем вы можете попробовать установку exe.
Нашел это на другой странице – работает отлично!
«Лучший способ, который я нашел, это установить Java на PC, а затем перейти в папку appdata, расположенную здесь: C:\Users\username\AppData\LocalLow\Oracle\Java\jre1.8.0_60 и скопировать файл jre1.8.0_60.msi в вашу папку программного обеспечения, используемую для развертывания SCCM. Затем настройте свое приложение Java для развертывания, используя этот msi файл. Добавьте свои ключи или что-то еще, что вам нужно. Я делаю это много лет и никогда не имел проблем с развертыванием Java на тысячи компьютеров, которыми я управляю.»
Для меня эта ошибка возникла потому, что установщик не мог найти файлы .CAB. Когда вы извлекаете .msi, вам также нужно захватить файлы CAB и поместить их в ту же папку, что и .msi, когда вы его вызываете.
Ответ или решение
Ошибка установки Java MSI 3: -2147287037 может вызывать затруднения при попытке тихой установки Java 8 Update 60 через его MSI. Эта ошибка указывает на проблемы с доступом к MSI-файлу или отсутствием необходимых файлов для установки. Ваша проблема может быть решена с использованием нескольких подходов. Ниже представлены рекомендации и шаги для устранения данной проблемы.
Шаги по устранению ошибки установки Java MSI:
-
Извлечение MSI и необходимые файлы:
- Попробуйте извлечь MSI и его зависимости из инсталлятора. Для этого используйте инструкции, предоставленные по следующей ссылке: Извлечение MSI из установки Java.
- После извлечения найдите файл
jre1.8.0_60.msi
по пути%userprofile%\AppData\LocalLow\Oracle\Java\jre1.8.0_60
.
-
Копирование файлов:
- Скопируйте извлечённый MSI файл в папку:
C:\windows\system32\config\systemprofile\AppData\LocalLow\Oracle\Java\jre1.8.0_60\
. - Убедитесь, что все .CAB файлы, необходимые для установки, находятся в одной директории с MSI. Если они отсутствуют, установка не сможет пройти успешно.
- Скопируйте извлечённый MSI файл в папку:
-
Запуск установщика с необходимыми параметрами:
- Запустите инсталлятор с необходимыми параметрами через командную строку. Пример команды:
jre.exe INSTALL_SILENT=1 STATIC=0 AUTO_UPDATE=0 WEB_JAVA=1 WEB_JAVA_SECURITY_LEVEL=H WEB_ANALYTICS=0 EULA=0 REBOOT=0 NOSTARTMENU=1 /L C:\temp\jre-8u60.log
- Убедитесь, что вы запускаете команду от имени администратора или под системной учетной записью, если используете SCCM.
- Запустите инсталлятор с необходимыми параметрами через командную строку. Пример команды:
-
Проверка прав доступа:
- Убедитесь, что у вас есть необходимые права доступа к файловым и реестровым путям, которые предоставляет установщик. Ошибка 1402 указывает на то, что установщик не может получить доступ к определённому ключу реестра. Проверьте разрешения для
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer
.
- Убедитесь, что у вас есть необходимые права доступа к файловым и реестровым путям, которые предоставляет установщик. Ошибка 1402 указывает на то, что установщик не может получить доступ к определённому ключу реестра. Проверьте разрешения для
-
Тестовая установка:
- Для тестирования можно использовать утилиту
PSEXEC
для создания нового процесса с учетной записью SYSTEM и попробовать выполнить установку:PSEXEC -i -s -d CMD
- Затем в открывшейся командной строке выполните установку.
- Для тестирования можно использовать утилиту
-
Копирование Java Settings:
- Если у вас ранее были успешные установки версий 8u51 или 8u45, убедитесь, что скопируйте файл
java.settings.cfg
вC:\ProgramData\Oracle\Java
перед установкой, если это необходимо.
- Если у вас ранее были успешные установки версий 8u51 или 8u45, убедитесь, что скопируйте файл
Заключение:
Если вышеуказанные шаги не приводят к успеху, попробуйте выполнять установку на тестовой машине, и проверьте, сохраняются ли те же ошибки. Если проблема не удаётся решить, возможно, стоит обратиться к поддержке Oracle или изучить их базу знаний на предмет последних обновлений и изменений в процессе установки. Успехов!