通过命令行在Windows机器上静默安装JDK 8和JRE 8

dag*_*erx 11 java windows silent-installer

我们想在多台机器上更新JDK环境,所有运行的窗口都有不同的版本(XP或7)

为此,我现在正在创建一个脚本,它将自动运行正确的安装程序(32/64位).我尝试使用以下命令运行安装程序:

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

这在没有安装JDK/JRE 8的机器上工作正常.但是,我遇到了一些问题:

  • 如果已经安装了JDK/JRE 8,安装程序将取消JDK和JRE,而不是简单地做任何事情(或重新安装)
  • 如果需要重新启动,则会自动强制执行,我需要避免这种情况,因为安装完成后我需要在脚本中执行其他操作.
  • 没有VERBOSE模式/日志文件来指示安装程序实际执行的操作

我看过这些来源:

但他们似乎缺乏并且非常混淆什么会给我想要的结果.

odo*_*ner 9

我将分别处理JDK和JRE:

JDK不依赖于注册表项或任何其他安装程序exe文件一样.因此,只使用台机器安装JDK - 不使用 Public JRE

jdk-8u25-windows-x64.exe /s ADDLOCAL="ToolsFeature,SourceFeature"
Run Code Online (Sandbox Code Playgroud)

然后,您可以简单地压缩生成的安装,将其复制并解压缩到相同操作系统类型的其他计算机.

JRE安装程序(从Oracle单独下载)可以选择和配置文件运行如下记载:http://docs.oracle.com/javase/8/docs/technotes/guides/install/windows_installer_options.html

假设配置与安装程序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
Run Code Online (Sandbox Code Playgroud)

看来以下jre-install-options.txt可能适合您:

INSTALL_SILENT=Enable
REBOOT=Disable
STATIC=Enable
Run Code Online (Sandbox Code Playgroud)

配置文件选项在此处列出: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#static_installation