Jenkins,指定JAVA_HOME

Nim*_*sky 18 java ubuntu java-home jenkins

我使用apt-get在我的ubuntu盒子上安装了openjdk-6-jdk.

在系统信息中,jenkins告诉我Java.Home是 /usr/lib/jvm/java-6-openjdk/jre

但是当我JAVA_HOME在Jenkins中指定该目录:"configure system"时,它会返回错误消息,指出该目录看起来不像jdk目录.

它也没能拿起我的maven安装.

我错过了一些明显的东西吗

Ern*_*oso 20

您的JAVA_HOME变量必须设置为/ usr/lib/jvm/java-6-openjdk,并且它必须可用于启动Jenkins的用户.

来自Kyle Strand的评论:

截至2015年4月(我认为),Jenkins需要Java7.另请注意,如果系统默认值仍为Java 6,则必须将java二进制路径(JAVA)设置为正确的版本.最后,对于想知道这些变量设置在何处的人,它在配置文件中列出了Jenkins上的安装说明网页(例如对于Debian来说是/ etc/default/jenkins).

  • 截至2015年4月(我认为),Jenkins需要Java7.另请注意,如果系统默认值仍为Java 6,则必须将java二进制路径(`JAVA`)设置为正确的版本.最后,对于想知道这些变量设置位置的任何人,它都在配置文件中列出,其中包含安装说明Jenkins网页(例如,对于Debian来说,它是`/ etc/default/jenkins`). (4认同)

ViV*_*ViV 6

我面临着同样的问题,对我来说,JAVA_HOMEjdk12降级并不是像答案中所说的合理选择。所以我做了一个反复试验,我什至没有降级版本就让 Jenkins 运行了JAVA_HOME.

\n

脚步:

\n
    \n
  • 开放配置$ sudo vi /etc/init.d/jenkins
  • \n
  • 评论以下行:
  • \n
\n
 #JAVA=`type -p java`\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  • 介绍一下下面提到的线路。(注:请填写您机器中JDK的具体路径。)
  • \n
\n
 JAVA=`type -p /usr/lib/jdk8/bin/java`\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  • 重新加载 systemd 管理器配置:$ sudo systemctl daemon-reload
  • \n
  • 启动 Jenkins 服务:$ sudo systemctl start jenkins\n
    \xe2\x97\x8f jenkins.service - LSB: Start Jenkins at boot time\n   Loaded: loaded (/etc/init.d/jenkins; generated)\n   Active: active (exited) since Sun 2020-05-31 21:05:30 CEST; 9min ago\n     Docs: man:systemd-sysv-generator(8)\n  Process: 9055 ExecStart=/etc/init.d/jenkins start (code=exited, status=0/SUCCESS)\n
    Run Code Online (Sandbox Code Playgroud)\n
  • \n
\n


小智 5

在 CentOS 6.x 和 Redhat 6.x 系统上,openjdk-devel 包包含 jdk。如果您熟悉 RedHat 中使用的 -devel 模式就足够明智了,但是如果您正在寻找符合 java 命名标准的 jdk 包,则会感到困惑。


use*_*316 5

使用Jenkins 2(在我的情况下为2.3.2),正确的方法似乎是将以下内容插入到管道文件中:

env.JAVA_HOME="${tool 'jdk1.8.0_111'}"
env.PATH="${env.JAVA_HOME}/bin:${env.PATH}"
Run Code Online (Sandbox Code Playgroud)

“ jdk1.8.0_111”是最初注册到Jenkins中的Java配置的名称


BCl*_*don 5

我只是想为 Windows 机器添加一个解决方案。

  • Windows Server 2008 R2 标准版、SP1
  • 詹金斯2.89.4
  • Java 版本 8.171

症状: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 位置。

<env name="JENKINS_HOME" value="%BASE%"/>
<!--
if you'd like to run Jenkins with a specific version of Java, specify a full path to java.exe.
The following value assumes that you have java in your PATH.
-->
<executable>C:\Program Files\Java\jre1.8.0_171\bin\java</executable>
<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080 --webroot="%BASE%\war"</arguments>
Run Code Online (Sandbox Code Playgroud)

您还可以使用 Windows 环境变量,但我没有成功,而且我认为 Java 安装程序不会更新这些变量,因此您每次都需要手动更新。

<env name="JENKINS_HOME" value="%BASE%"/>
<!--
if you'd like to run Jenkins with a specific version of Java, specify a full path to java.exe.
The following value assumes that you have java in your PATH.
-->
<executable>%JAVA_HOME%\bin\java</executable>
<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080 --webroot="%BASE%\war"</arguments>
Run Code Online (Sandbox Code Playgroud)