![部署 Java8u77 会删除 Java6u45 的静态安装](https://linux22.com/image/681670/%E9%83%A8%E7%BD%B2%20Java8u77%20%E4%BC%9A%E5%88%A0%E9%99%A4%20Java6u45%20%E7%9A%84%E9%9D%99%E6%80%81%E5%AE%89%E8%A3%85.png)
我正在使用 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。但是当我必须将所有客户端更新到最新版本时,这并不容易部署……
有人对此有更好的解决方案吗?
多谢!