我使用apt-get在我的ubuntu盒子上安装了openjdk-6-jdk。
在系统信息中,jenkins告诉我Java.Home是/usr/lib/jvm/java-6-openjdk/jre
但是当我在Jenkins中指定该目录为JAVA_HOME
:“configure system”时,它会返回错误消息,指出该目录看起来不像jdk目录。
它也无法接受我的maven安装。
我错过了一些明显的东西吗?
答案 0 :(得分: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)。
答案 1 :(得分:4)
在CentOS 6.x和Redhat 6.x系统上,openjdk-devel包中包含jdk。如果您熟悉RedHat中使用的-devel模式,那就足够了,但如果您正在寻找符合Java命名标准的jdk包,那就太麻烦了。
答案 2 :(得分:4)
使用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配置的名称
答案 3 :(得分:2)
openjdk-6
是Java运行时,而不是JDK(例如,包含javac
的开发工具包)。安装openjdk-6-jdk
。
Maven也需要JDK。
[编辑] 安装JDK后,对/usr/lib/jvm/java-6-openjdk
使用JAVA_HOME
(即没有jre
部分)。
答案 4 :(得分:2)
我面临着同样的问题,对我来说,将JAVA_HOME
从 jdk12 降级并不是像answer中所说的那样。因此,我进行了反复试验,使Jenkins运行,甚至没有降级JAVA_HOME
的版本。
$ sudo vi /etc/init.d/jenkins
#JAVA=`type -p java`
JAVA=`type -p /usr/lib/jdk8/bin/java`
$ sudo systemctl daemon-reload
$ sudo systemctl start 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)
答案 5 :(得分:1)
如果有人遇到类似的问题,我会使用相关软件包的默认sudo apt-get安装,这里是正确的设置:
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386
和
MAVEN_HOME=/usr/share/maven2
答案 6 :(得分:1)
我只是想为Windows机器添加解决方案。
症状: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位置。
您也可以使用Windows环境变量,但我没有成功,我认为Java安装程序不会更新它们,因此您每次都需要手动更新它。
答案 7 :(得分:0)
在Jenkins尝试将JAVA_HOME
设置为/usr/lib/jvm/java-6-openjdk
答案 8 :(得分:0)
从Ubuntu 10.0.4升级到12.0.4我们错了。 我们配置了JDK安装(自动配置?)指向/ usr / lib / jvm / java-6-openjdk 这不再包含JDK, 更改为/ usr / lib / jvm / default-java已修复,应该进行无缝的java-7升级。
所以回答这个问题:不要在Ubuntu上指定JAVA_HOME。
答案 9 :(得分:0)
在Ubuntu 12.04中我必须安装 的的openjdk -7- JDK 强>
然后 javac 正在运作!
然后我可以使用
/usr/lib/jvm/java-7-openjdk-amd64
答案 10 :(得分:0)
从http://pkg.jenkins-ci.org/redhat/下载包rpm包你可以提供额外的java位置,比如我的系统中有默认的1.7 java,但我使用/opt/jdk1.8.0_60/bin/java作为jenkins。打开jenkins启动脚本/etc/init.d/jenkins并在这里添加额外的java,我的情况我添加了/opt/jdk1.8.0_60/bin/java,
将可用的Java搜索为/ usr / bin / java可能不会指向Jenkins所需的最小版本。
请参阅http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html
候选=" /opt/jdk1.8.0_60/bin/java
答案 11 :(得分:0)
这是一个旧线程,但是对于需要特定Java JDK的最新Jenkins版本(在我的情况下为Jenkins 2.135),以下内容应有所帮助:
注意:这是针对Centos 7的,其他发行版可能具有不同的目录位置,尽管我认为它们也适用于ubuntu。
修改/etc/sysconfig/jenkins
并设置变量JENKINS_JAVA_CMD="/<your desired jvm>/bin/java"
(需要root访问权限)
示例:
JENKINS_JAVA_CMD="/usr/lib/jvm/java-1.8.0-openjdk/bin/java"
重新启动Jenkins(如果jenkins作为服务sudo service jenkins stop
然后sudo service jenkins start
运行)
上面的代码修复了我在升级到Java 10和Jenkins至2.135之后无法开始安装Jenkins
答案 12 :(得分:0)
对于那些遇到此问题并有权配置Jenkins代理的人,可以从Jenkins>节点>“代理名称”>“配置”页面设置JAVA_HOME
:
答案 13 :(得分:-2)