Установка JDK 8 и JRE 8 в автоматическом режиме на компьютере Windows через командную строку

Мы хотим обновить среду JDK на нескольких машинах, на всех запущенных окнах, но на разных версиях (XP или 7).

Для этого я сейчас создаю скрипт, который автоматически запускает правильный установщик (32/64 бит). Я попытался запустить установщик с помощью следующей команды:

jdk-8u25-windows-x64.exe /s ADDLOCAL="ToolsFeature,SourceFeature,PublicjreFeature"

Это прекрасно работает на машине без установленной JDK/JRE 8. Однако я сталкиваюсь с несколькими проблемами:

  • Если JDK/JRE 8 уже установлен, программа установки удаляет JDK и JRE вместо того, чтобы просто ничего не делать (или переустанавливать)
  • Если требуется перезагрузка, она принудительно выполняется автоматически, и мне нужно избегать этого, так как есть другие действия, которые мне нужно выполнить в сценарии после завершения установки.
  • Нет режима / файла журнала VERBOSE, чтобы указать, что на самом деле делает установщик

Я посмотрел на эти источники:

но они кажутся недостающими и очень запутанными относительно того, что даст мне желаемый результат.

4 ответа

Я бы занялся JDK и JRE отдельно:

JDK не зависит от записей реестра или от того, что делает установщик exe. Так что установите JDK - без Public JRE - только на одной машине, используя

jdk-8u25-windows-x64.exe /s ADDLOCAL="ToolsFeature,SourceFeature"

Затем вы можете просто заархивировать полученную установку, скопировать и распаковать ее на другие машины того же типа ОС.

Установщик JRE (отдельная загрузка из Oracle) можно запустить с параметрами и файлом конфигурации, как описано здесь: http://docs.oracle.com/javase/8/docs/technotes/guides/install/windows_installer_options.html

Предполагая, что config находится в том же каталоге, что и exe-установщик, опция INSTALLCFG="%cd%\jre-install-options.cfg" может быть использован. В противном случае требуется указать полный путь к файлу конфигурации (INSTALLCFG="c:\path\to\jre-install-options.cfg"). Итак, что-то вроде этого (с файлом журнала и при условии, что файл конфигурации находится в том же каталоге exe):

jre-8-windows-i586.exe INSTALLCFG="%cd%\jre-install-options.cfg" /s /L C:\TMP\jre-install.log

Кажется, что следующий jre-install-options.txt может работать для вас:

INSTALL_SILENT=Enable
REBOOT=Disable
STATIC=Enable

Параметры файла конфигурации перечислены здесь: http://docs.oracle.com/javase/8/docs/technotes/guides/install/config.html

Значение последней строки объясняется здесь: http://docs.oracle.com/javase/8/docs/technotes/guides/install/windows_installer_options.html

Кажется, есть постоянные изменения в поддерживаемых параметрах командной строки. Для последнего 8 Обновления 131 мне пришлось отказаться от всех опций стиля msiexec, потому что ни один из них не работал. Я использовал документацию для версии Java, которую я скачал, чтобы создать переключатели для установщика. Как показано в ответах выше, параметры файла конфигурации могут быть переданы установщику из командной строки. Последняя команда, которую я использовал в Packer для установки Java на сервер Win2016 ami, была:

Start-Process 'C:\Windows\Temp\jre-8u131-windows-x64.exe' `
  -ArgumentList 'INSTALL_SILENT=Enable REBOOT=Disable SPONSORS=Disable' `
  -Wait -PassThru

Эта команда также добавляет Java в системный путь по умолчанию, но не в тот, который она устанавливает. Откройте новую оболочку powershell, и она будет на пути к этой оболочке (проверьте с помощью $env.path)

Источники правды:

http://docs.oracle.com/javase/8/docs/technotes/guides/install/windows_installer_options.html http://docs.oracle.com/javase/8/docs/technotes/guides/install/config.html

Я столкнулся с аналогичной проблемой с параметром /s. Я нашел ошибку jdk https://bugs.openjdk.java.net/browse/JDK-8033364. Кажется, они убрали поддержку или помощь. Попробуйте / QN это сработало для меня

jdk-8u92-windows-x64.exe /qn

Для тихой установки JRE:

start /wait msiexec /i "%~ java8.40x64.msi " JU=0 JAVAUPDATE=0 AUTOUPDATECHECK=0 RebootYesNo=No WEB_JAVA=1 /q

Вы можете увидеть полный пост здесь.

Другие вопросы по тегам