当 Java 更新到 OpenJDK 11 时,Jenkins 关于 Windows returns 不支持的 JVM 错误

Jenkins on Windows returns unsupported JVM error when Java is updated to OpenJDK 11

我一直在测试在 Windows Jenkins 服务器上将 Oracle Java 8 更新为 Red Hat OpenJDK Java 11,但我似乎碰壁了.我的 Jenkins 实例表明 Java 11 不受支持,在我更新 JENKINS_HOME JRE 文件后返回以下错误:

"We detected that your JVM is not supported by Jenkins. This is due to the limitation is one of the libraries that Jenkins uses, namely XStream. See this FAQ for more details."

我采取的步骤:

1. 停止并禁用 Jenkins 服务

2. 从控制面板卸载 Oracle Java 8 191 并删除位于 Java\jdk1.8.0_191

的剩余程序文件 3. 安装 Red Hat OpenJDK 11.0.4 msi 到 Java\jdk11.0.4

4. 更新 JAVA_HOME 和 PATH 变量以指向新的 Java 位置

5. 使用 JDK 中的所有模块从 JDK 11 个文件创建 JRE 11。具体来说,我使用 this site 来帮助创建 JRE。将 JRE 文件放在服务器上的标准位置,Java\jre11.0.4

5. 将 Jenkins 服务设置为自动并启动它。确认 Jenkins 站点正常运行,然后停止并再次禁用服务

6. 备份 JENKINS_HOME 后,将那里的 JRE 文件夹替换为我从 JDK 11 个文件创建的 jre11.0.4 文件夹。

7. 启动 Jenkins 服务。导航到 Jenkins 站点后,我收到有关 JVM 不受支持的错误消息。

8. Stopped/disabled Jenkins 服务,然后将 Jenkins.war 更新为 Jenkins 2.194 每周发布。 (我之前是 运行ning Jenkins LTS 2.176.3。)启动 Jenkins 服务,却收到同样的错误。

我不确定如何继续,"Upgrading Jenkins Java version from 8 to 11" Jenkins 文档在这一点上帮助不大。升级 Jenkins 部分的最后一步是 "Use a package manager to install the new JVM" 和 "Make sure the default JVM is the newly installed version. If it is not, use the correct java command in the Jenkins startup scripts"。这些说明似乎特定于 运行ning on Linux OS 的 Jenkins 实例。如果它们适用于所有 OS 类型,我不确定如何在 Windows 环境中遵循它们。

我还查看了 Jenkins 的 Running Jenkins on Java 11 文档,但也没有找到任何有用的信息。

最后 FAQ hyperlink in the error message does not work, and the only information provided by this similarly named XStream site is a note stating XStream requires Java 8, which is in direct conflict with Jenkins' Java documentation 表示 Jenkins 支持 Java 8 和 11.

对于使用 OpenJDK 11 将 Jenkins 的 any 版本升级到 运行 的任何建议,或者我的下一步应该在这里做什么,将不胜感激。

软件和版本:
- Windows 服务器 2016
- 詹金斯 LTS 2.176.3
- Jenkins 每周发布 2.194
- Oracle Java JDK 和 JRE 1.8.0.191
- 从 JDK 文件

中的所有模块创建的 Red Hat OpenJDK 1.11.0.4 和 JRE

看来我错过了 Jenkins.xml 文件中的以下说明:

If you'd like to run Jenkins with a specific version of Java, specify a full path to java.exe.

我团队的另一位成员看到了这一点,并向 Jenkins.xml 文件添加了一个 JAVA11_HOME 环境:

<env name="JAVA11_HOME" value="D:\Java\jdk11.0.4"/>

然后更新Jenkins.xml中的可执行文件路径:
从默认值开始:

<executable>%BASE%\jre\bin\java</executable>

收件人:

<executable>%JAVA11_HOME%\bin\java</executable>

Jenkins 终于在 Java 11 日 运行 上线了!