我已经在Windows詹金斯服务器上测试将Oracle Java 8更新为Red Hat OpenJDK Java 11,但我似乎碰到了一个问题。我的詹金斯实例说明Java 11是不受支持的,在更新JeknsJHOME JRE文件之后返回以下错误:
“我们检测到Jenkins不支持您的JVM。这是由于jenkins使用的一个库xstream的限制。有关更多详细信息,请参见FAQ。
我已经采取的步骤:
1。停止和禁用詹金斯服务
2。从控制面板卸载Oracle Java 8 191,并在Java\JDK1.80191中删除剩余的程序文件
三。安装Red Hat OpenJDK 1.0.4MSI到Java\JDK110.4
4。更新JavaAHEAD和PATH变量以指向新的Java位置
5。使用jdk中的所有模块从jdk 11文件创建jre11。我特别利用this site来帮助创建jre。将JRE文件放置在服务器的标准位置,Java\jRe1.0.4
5。将jenkins服务设置为automatic并启动它。确认Jenkins站点正常工作,然后停止并再次禁用服务
6。在备份jenkins_home之后,将jre文件夹替换为我从jdk 11文件创建的jre11.0.4文件夹。
7。开始为詹金斯服务。导航到jenkins站点后,我收到了关于jvm不受支持的错误消息。
8。停止/禁用jenkins服务,然后将jenkins.war更新为jenkins 2.194每周发布。(我之前运行的是Jenkins LTS 2.176.3。)启动了Jenkins服务,但收到了相同的错误。
我不知道如何继续,jenkins文档在这一点上没有多大帮助。升级jenkins部分的最后一步是“使用包管理器安装新的jvm”和“确保默认jvm是新安装的版本”。如果不是,在詹金斯启动脚本中使用正确的Java命令。这些指令似乎特定于运行在linux操作系统上的jenkins实例。如果它们适用于所有操作系统类型,我不确定如何在windows环境中遵循它们。
我还查阅了詹金斯的"Upgrading Jenkins Java version from 8 to 11"文档,但也没有找到任何有用的信息。
最后,错误消息中的Running Jenkins on Java 11不起作用,而FAQ hyperlink提供的唯一信息是一个注释,说明XStand需要Java 8,它与this similarly named XStream site直接冲突,即詹金斯支持Java 8和11。
对于让jenkins的任何版本与openjdk 11一起运行或者我接下来的步骤应该在这里执行的任何建议都将非常感谢。
软件和版本:
-Windows服务器2016
-詹金斯2.176.3
-詹金斯周刊2.194
- Oracle Java JDK和JRE 1.80.191
-从JDK文件中的所有模块创建的Red Hat OpenJDK 1.11.0.4和JRE
最佳答案
因此,我似乎错过了jenkins.xml文件中的以下说明:
如果您想用Java的特定版本运行詹金斯,请指定
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>
詹金斯终于在Java 11上运行了!