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

标签 java windows silent-installer

我们想在多台机器上更新JDK环境,都运行windows但是版本不同(XP或者7)

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

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

这在没有安装 JDK/JRE 8 的机器上运行良好。但是,我遇到了一些问题:

  • 如果 JDK/JRE 8 已经安装,安装程序会同时卸载 JDK 和 JRE,而不是什么都不做(或重新安装)
  • 如果需要重新启动,它会自动强制执行,我需要避免这种情况,因为在安装完成后我需要在脚本中执行其他操作。
  • 没有 VERBOSE 模式/日志文件来指示安装程序实际在做什么

我查看了这些来源:

但他们似乎缺乏并且非常困惑什么会给我想要的结果。

最佳答案

我会分别处理 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

假设配置与安装程序 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#static_installation

关于java - 通过命令行在 Windows 机器上静默安装 JDK 8 和 JRE 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28043588/

相关文章:

windows - VbScript,无需用户输入即可远程安装 exe?

Delphi Tokyo 10.2 的 Powershell 静默/无人值守安装 - 用于在 win docker 容器中使用 CI

powershell - 无人值守/静默安装 Notepad++

java - 无法从 JNI 调用带有 ArrayList 对象的 Java API

java - 使用 CompletableFuture 故意破坏堆栈不会产生堆栈溢出?

c++ - 开源dll注入(inject)器

java - Java如何在单独的进程树中执行批处理文件

windows - 如何检查 OpenCV 是否使用 TBB、CUDA 或 Qt 支持进行编译?

java - 如何使用 XPath 在 java 中查找带有 CDATA 标记的节点值

java - 计算 Hash<String,List<String>> 中 List 中项目值的出现次数