繁体   English   中英

Jenkins 使用错误版本的 Java

[英]Jenkins using wrong version of Java

我正在尝试让 Jenkins 在 Windows 机器上工作。 出于测试目的,我在本地主机上安装了 Jenkins。 Java_homepath指向 java 14(从 zip 中提取)。 我在我的机器上安装了 jre7 和 jre 8,所以删除它们以消除我之前遇到的类路径错误。 我不得不从 system32 文件夹中手动删除 java.exe javaw.exe。

我从命令提示符运行 ant 构建,它没有任何问题。 现在我在同一台机器上的 Jenkins 中构建相同的项目,我得到以下异常。

我在 Jenkins 中的何处指定 Java 版本,以便它开始使用 JAVA_HOME 和路径?

[CommonUtilities] $ cmd.exe /C '"ant.bat -file exported_build.xml build && exit %%ERRORLEVEL%%"'
Error: could not open `C:\Program Files (x86)\Java\jre7\lib\i386\jvm.cfg'
Build step 'Invoke Ant' marked build as failure
Finished: FAILURE

更新:

>echo %JAVA_HOME%
C:\tools\bea\jdk142_19

>echo %PATH%
C:\TDS\Ora\product\11.2.0\client_1\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS
\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\W
indowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin;C:\tools\bea\jdk142_08\b
in;C:\tools\Build\ant\apache-ant-1.8.2\bin;

要更改默认的Jenkins JRE,请编辑配置文件%JENKINS_HOME%/ jenkins.xml ,并使用您喜欢的JRE路径修改<executable>标记,如下所示:

<!-- <executable>%BASE%\jre\bin\java</executable> -->
<executable>C:\Program Files\Java\jdk1.8.0_65\jre\bin\java</executable>

您正在使用Winstone应用程序服务器吗? %PATH% Java二进制文件正确吗?

如果您使用的是Winstone Application Server,则不难获得正确的 Java运行。 您为其指定路径名。 否则,请确保JRE bin目录位于您的%PATH%

 C:\> \path\to\java\JRE\bin\java -jar jenkins.jar

我必须从system32文件夹中手动删除java.exe javaw.exe。

不! 切勿从Windows删除System32目录中的任何内容。 如果可能,请使用“控制面板”中的软件卸载程序。 Windows使用注册表来注册所有已安装和需要的组件。 如果无法安装默认的Java,则只需将%JAVA_HOME%\\bin放在C:\\Windows\\System 32目录之前的%PATH%

我建议使用Jenkins中内置的Winstore应用程序服务器进行测试。 就像我上面显示的那样,只需在控制台窗口中从命令行运行它。 测试之后,您可以将Jenkins作为Windows Service安装 ,因此Jenkins将在启动计算机时自动启动,并且它将在服务帐户下运行,并且如果由于某种原因该服务关闭,它将自行重新启动。


我做了什么:

  • 我将所有各种Java JDK(从Oracle下载)安装到C:\\ Java。 每个JDK版本都有一个单独的目录。
  • 在系统控制面板的环境变量部分中,我为每个JAVA_HOME定义了环境变量。 我有一个JAVA_HOME_1.6JAVA_HOME_1.7
  • 然后,我定义一个JAVA_HOME环境变量,该变量指向我在上一步中创建的上述JAVA_HOME版本之一。
  • 然后,我将环境PATH设置为将%JAVA_HOME\\bin作为PATH中的第一个元素。 如果需要更改使用的Java版本,只需更改JAVA_HOME定义并打开一个新的Console窗口。
  • 现在,正确的Java版本就在我的书中,我可以像这样启动Jenkins:

    C> java -jar jenkins.war

症状:Jenkins服务启动并立即停止。

Jenkins.wrapper.log的一行指示Java的错误路径:-启动C:\\ Program Files \\ Java \\ jre1.8.0_141 \\ bin \\ java -Xrs -Xmx6g -Dhudson.lifecycle = hudson.lifecycle.WindowsServiceLifecycle -jar“ C:\\ Program Files(x86)\\ Jenkins \\ jenkins.war“ --httpPort = 8080 --webroot =” C:\\ Program Files(x86)\\ Jenkins \\ war“

解决方法:Jenkins在jenkins.xml中具有硬编码的路径。 将路径更改为新的Java位置。 在我的情况下,我将C:\\ Program Files \\ Java \\ jre1.8.0_141 \\ bin \\ java更改为C:\\ Program Files \\ Java \\ jre1.8.0_171 \\ bin \\ java

您也可以使用Windows环境变量,但是我并没有成功,我也不认为Java安装程序会更新这些变量,因此无论如何您都需要手动进行更新。

Windows Server 2008 R2 Standard SP1 Jenkins 2.89.4 Java版本8.171

您的%JAVA_HOME%和%PATH%环境变量上唯一看起来像Java的东西都设置为'C:\\ tools \\ bea \\ jdk142_19'或'C:\\ tools \\ bea \\ jdk142_08',我认为这些都将继续是Java 1.4.2。 更改系统环境变量以指向位于Program Files目录中的JDK或JRE安装,Jenkins将开始使用该JRE。 让Jenkins使用特定的JDK进行构建是另一回事,这已经在其他地方得到了回答。

我的Jdk15版本仍然位于程序文件中,我必须将其删除然后重新启动系统。 詹金斯(Jenkins)从路径上捡起了jdk14并成功运行。

另一个建议:

如果您在安装Jenkins之后更改了环境(删除了Java,更改了路径等),则它与Jenkins无关,因为它已经处于获取环境的会话中。 重新启动Jenkins,以使这些更改生效并将新环境加载到会话中。

我遇到过同样的问题。 只需安装最新版本的 Java。 重启机器就可以安装了。

https://www.java.com/en/download/

检查系统上现有的 jdk 版本。 如果不兼容,请安装兼容的jdk版本并尝试重新安装应用程序。 这应该工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM