Jenkins使用错误的Java版本

mzmfm0qo  于 2022-11-02  发布在  Jenkins
关注(0)|答案(8)|浏览(390)

我试图让Jenkins在Windows机器上工作。为了测试的目的,我已经在我的本地主机上安装了Jenkins。Java_homepath指向java 14(从zip中提取)。我在我的机器上安装了jre7和jre 8,所以删除了它们,以摆脱我之前遇到的类路径错误。我不得不手动删除system32文件夹中的java.exe javaw.exe。
我从命令提示符运行ant build,它工作没有任何问题。现在我在Jenkins中构建同样的项目,也是在同一台机器上,我得到以下异常。
我在Jenkins中的哪里指定Java版本,以便它开始使用JAVA_HOME和Path?

[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;
uurv41yg

uurv41yg1#

要更改默认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>
83qze16e

83qze16e2#

您是否正在使用Winstone应用程序服务器?%PATH%中的java二进制文件是否正确?
如果你使用的是Winstone应用服务器,运行 * 正确的 * 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应用程序服务器进行测试。只需在上面显示的控制台窗口中的命令行运行它。测试后,您可以使用install Jenkins as a Windows Service,这样当您启动机器时,Jenkins将自动启动,并且它将在服务帐户下运行,如果由于某种原因服务关闭,它将重新启动自己。
我做了什么:

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

C〉java -jar jenkins.战争

wlp8pajw

wlp8pajw3#

症状:Jenkins服务启动后立即停止。
Jenkins.wrapper.log中有一行指示Java的路径不正确:- 启动C:\程序文件\Java\jre1.8.0_141\bin\java-Xrs -Xmx 6 g-Dhudson.生命周期= Dhudson.生命周期. Windows服务生命周期-jar“C:\程序文件(x86)\Jenkins\Jenkins.war”--httpPort=8080 --webroot=“C:\程序文件(x86)\Jenkins\war”
修复方法:Jenkins在jenkins.xml中硬编码了路径。将路径更改为新的Java位置。在我的例子中,我更改了:从C:\程序文件\Java\jre1.8.0_141\bin\java转换为C:\程序文件\Java\jre1.8.0_171\bin\java
你也可以使用Windows环境变量,但是我没有成功,我不认为Java安装程序会更新这些变量,所以你每次都需要手动更新。
Windows Server 2008 R2标准版,SP1 Jenkins 2.89.4 Java版本8.171

dfty9e19

dfty9e194#

您的%JAVA_HOME%和您的%PATH%环境变量上唯一看起来像Java的东西被设置为“C:\tools\bea\jdk1.4.2_19”或“C:\tools\bea\jdk1.4.2_08”,我认为这些将是java 1.4.2。将您的系统环境变量更改为指向您的Program Files目录中的JDK或JRE安装,Jenkins将开始使用该JRE。让Jenkins使用特定的JDK进行构建是另一回事,这在其他地方已经提出并得到了答案。

ds97pgxw

ds97pgxw5#

我有Jdk15版本仍然坐在周围的程序文件,我不得不删除它,然后重新启动我的系统。Jenkins拿起jdk14从路径,并成功运行。

kx5bkwkv

kx5bkwkv6#

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

wribegjk

wribegjk7#

我也遇到了同样的问题。只要安装最新版本的Java。重新启动机器,就可以安装了。
https://www.java.com/en/download/

fivyi3re

fivyi3re8#

检查系统中现有的jdk版本。如果不兼容,请安装兼容的jdk版本,然后尝试重新安装应用程序。这样应该可以

相关问题