部署 Java8u77 会删除 Java6u45 的静态安装

部署 Java8u77 会删除 Java6u45 的静态安装

我正在使用 PDQ Deploy 的免费版本在域中的客户端计算机上部署 Java 更新,使用可执行安装程序,而不是提取的 MSI。

根据Oracle 文档,无需创建配置文件。命令行开关可以使用相同的值。

我们的一些客户要求保留 Java 6。因此我执行了静态安装在这些客户端上。

现在我面临的挑战是:当我在这些客户端上部署最新版本(Java 8u91)时,Java 6 会被删除。

这些是我正在使用的命令:

jre-6u45-windows-i586.exe /s STATIC=**1** SPONSORS=**0**
jre-8u91-windows-i586.exe INSTALL_SILENT=1 AUTO_UPDATE=0 REBOOT=0 SPONSORS=0 REMOVEOUTOFDATEJRES=1

或者

jre-6u45-windows-i586.exe /s STATIC=**Enable** SPONSORS=**Disable**
jre-8u91-windows-i586.exe INSTALL_SILENT=1 AUTO_UPDATE=0 REBOOT=0 SPONSORS=0 REMOVEOUTOFDATEJRES=1

我已经测试了两个选项“启用”或“1”/“禁用”或“0”

使用“REMOVEOUTOFDATEJRES=0”实际上不是一个选择,因为我不希望那些客户端同时安装 Java6u45 和 Java8u71 和 Java8u73 和 Java8u77 和 Java8u91...

所以我的问题是:如果我使用“REMOVEOUTOFDATEJRES=1”,“静态安装”通常会被删除吗,或者我做错了?

他们并没有在文档中真正提到它,而是谈论 Java 自动更新:

如果您执行 JRE 的静态安装(通过指定命令行或配置文件选项 STATIC=1),则 Java 自动更新功能将在 Java 更新期间保留该 JRE 的安装。同一 JRE 系列的更高版本将安装在单独的目录中。此模式可确保需要特定版本 JRE 的供应商能够确定 JRE 不会被较新版本覆盖。

这一页关于 Java 7,他们说:

当 JRE 以静态模式安装时,后续版本不会就地更新它。同一 JRE 系列的后续版本将安装在单独的目录中。此模式可确保需要特定版本 JRE 的供应商能够确信 JRE 不会被后续版本覆盖。

静态 JRE 安装的一些特点如下:

静态 JRE 安装(例如 7 Update 15)将忽略另一个 JRE 的先前修补安装(例如 7 Update 10)

静态 JRE 安装永不覆盖由另一个 JRE 版本

当存在较新版本的 JRE(例如,7 Update 15)时,较旧的 JRE 版本(例如,7 Update 12)仅以静态模式安装

补丁就位 JRE 可被相同版本的静态 JRE 安装覆盖。用户将只剩下一个静态 JRE 安装。

唯一正确的做法是先安装 Java 8,然后安装 Java 6。但是当我必须将所有客户端更新到最新版本时,这并不容易部署……

有人对此有更好的解决方案吗?

多谢!

相关内容