詹金斯,指定JAVA_主页
我使用apt get在我的ubuntu盒上安装了openjdk-6-jdk 在系统信息中,jenkins告诉我Java.Home是詹金斯,指定JAVA_主页,java,ubuntu,jenkins,java-home,centos,Java,Ubuntu,Jenkins,Java Home,Centos,我使用apt get在我的ubuntu盒上安装了openjdk-6-jdk 在系统信息中,jenkins告诉我Java.Home是/usr/lib/jvm/Java-6-openjdk/jre 然而,当我在Jenkins:“configure system”中将目录指定为JAVA\u HOME时,它会返回错误消息,指出该目录看起来不像jdk目录 它也无法接受我的maven安装 我是否遗漏了一些明显的东西?openjdk-6是一个Java运行时,而不是JDK(例如,包含javac的开发工具包)。安
/usr/lib/jvm/Java-6-openjdk/jre
然而,当我在Jenkins:“configure system”中将目录指定为JAVA\u HOME
时,它会返回错误消息,指出该目录看起来不像jdk目录
它也无法接受我的maven安装
我是否遗漏了一些明显的东西?
openjdk-6
是一个Java运行时,而不是JDK(例如,包含javac
的开发工具包)。安装openjdk-6-jdk
Maven也需要JDK
[编辑]安装JDK时,使用
/usr/lib/jvm/java-6-openjdk
查看java\u HOME
(即不带jre
部分)。您的java\u HOME变量必须设置为/usr/lib/jvm/java-6-openjdk,并且必须可供启动Jenkins的用户使用
来自Kyle Strand评论:
截至2015年4月(我认为),Jenkins需要Java7。还请注意,如果系统默认值仍然是java 6,则必须将java二进制路径(java)设置为正确的版本。最后,对于想知道这些变量设置在哪里的人来说,它位于Jenkins网页上列出的配置文件中(例如,对于Debian,它是/etc/default/Jenkins)。在Jenkins中,尝试将
JAVA_HOME
设置为/usr/lib/jvm/JAVA-6-openjdk
,以防有类似问题,我为相关软件包使用了默认的sudo apt get安装,以下是正确的设置:
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386
及
在CentOS 6.x和Redhat 6.x系统上,openjdk-devel包包含jdk。如果您熟悉RedHat中使用的-devel模式,这是非常明智的,但如果您正在寻找符合java命名标准的jdk包,则会感到困惑。从Ubuntu 10.0.4升级到12.0.4,我们的做法是错误的。 我们配置了一个JDK安装(自动配置?),指向/usr/lib/jvm/java-6-openjdk 这不再包含JDK, 更改为/usr/lib/jvm/default-java-fixed,应该可以实现无缝的java-7升级 所以在回答这个问题时:不要在Ubuntu上指定JAVA_HOME。我看到了 Eclipse>首选项>已安装的JRE>JRE定义 我找到了java_home的目录 所以是
/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home在Ubuntu 12.04中,我必须安装 openjdk-7-jdk 然后javac开始工作了 然后我可以使用
/usr/lib/jvm/java-7-openjdk-amd64
作为路径,詹金斯不再抱怨了 使用Jenkins 2(在我的例子中是2.3.2),正确的方法似乎是在管道文件中插入以下内容:
env.JAVA_HOME="${tool 'jdk1.8.0_111'}"
env.PATH="${env.JAVA_HOME}/bin:${env.PATH}"
“jdk1.8.0_111”是最初注册到Jenkins的java配置的名称下载包rpm包,您可以提供额外的java位置,就像我的系统中有默认的1.7 java一样,但我对Jenkins使用/opt/jdk1.8.0_60/bin/java。打开jenkins startup script/etc/init.d/jenkins并在这里添加额外的java,我在这里添加了/opt/jdk1.8.0_60/bin/java 搜索可用的Java as/usr/bin/Java可能不会指向Jenkins要求的最低版本 看 候选人=”
/opt/jdk1.8.0_60/bin/java我只是想为Windows机器添加一个解决方案
- Windows Server 2008 R2标准,SP1
- 詹金斯2.89.4
- Java版本8.171
Jenkins.wrapper.log
有一行指示到Java的错误路径:
-启动C:\Program Files\Java\jre1.8.0\u 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>
C:\Program Files\Java\jre1.8.0\U 171\bin\Java
-Xrs-Xmx256m-Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle-jar“%BASE%\jenkins.war”--httpPort=8080--webroot=“%BASE%\war”
您也可以使用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>
%JAVA\u HOME%\bin\JAVA
-Xrs-Xmx256m-Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle-jar“%BASE%\jenkins.war”--httpPort=8080--webroot=“%BASE%\war”
这是一个旧线程,但对于需要特定java JDK的更新Jenkins版本(在我的例子中是Jenkins 2.135),以下内容应该会有所帮助:
注意:这是针对Centos 7的,其他发行版可能有不同的目录位置,尽管我相信它们对于ubuntu也是正确的
修改/etc/sysconfig/jenkins
并设置变量jenkins\u JAVA\u CMD=“//bin/JAVA”
(需要根访问权限)
● jenkins.service - LSB: Start Jenkins at boot time
Loaded: loaded (/etc/init.d/jenkins; generated)
Active: active (exited) since Sun 2020-05-31 21:05:30 CEST; 9min ago
Docs: man:systemd-sysv-generator(8)
Process: 9055 ExecStart=/etc/init.d/jenkins start (code=exited, status=0/SUCCESS)
例如:
JENKINS_JAVA_CMD="/usr/lib/jvm/java-1.8.0-openjdk/bin/java"
重新启动Jenkins(如果Jenkins作为服务运行sudo服务Jenkins stop
,则sudo服务Jenkins start
)
上面修复了我的Jenkins安装在升级到Java10和Jenkins到2.135之后没有启动的问题
对于那些有权配置Jenkins代理的读者,您可以从Jenkins>节点>“代理名称”>配置页面设置
JAVA\u主页
:
我也面临着同样的问题,对我来说,从jdk12中降级
JAVA_HOME
并不像文章中所说的那样是一个合理的选择。因此,我做了一个试错实验,让Jenkins运行,甚至没有降级JAVA_HOME
步骤:
- 打开配置
$sudo vi/etc/init.d/jenkins
● jenkins.service - LSB: Start Jenkins at boot time
Loaded: loaded (/etc/init.d/jenkins; generated)
Active: active (exited) since Sun 2020-05-31 21:05:30 CEST; 9min ago
Docs: man:systemd-sysv-generator(8)
Process: 9055 ExecStart=/etc/init.d/jenkins start (code=exited, status=0/SUCCESS)
- 介绍了下面提到的行。(注:插入特定的p
JAVA=`type -p /usr/lib/jdk8/bin/java`
● jenkins.service - LSB: Start Jenkins at boot time Loaded: loaded (/etc/init.d/jenkins; generated) Active: active (exited) since Sun 2020-05-31 21:05:30 CEST; 9min ago Docs: man:systemd-sysv-generator(8) Process: 9055 ExecStart=/etc/init.d/jenkins start (code=exited, status=0/SUCCESS)