我使用 apt-get 在我的 ubuntu 机器上安装了 openjdk-6-jdk。
在系统信息中詹金斯告诉我 Java.Home 是/usr/lib/jvm/java-6-openjdk/jre
但是,当我JAVA_HOME
在 Jenkins 中指定该目录时:“配置系统”,它返回错误消息,指出该目录看起来不像 jdk 目录。
它也无法获取我的 Maven 安装。
我错过了一些明显的东西吗?
您的 JAVA_HOME 变量必须设置为 /usr/lib/jvm/java-6-openjdk 并且它必须可供启动 Jenkins 的用户使用。
来自 Kyle Strand 的评论:
截至 2015 年 4 月(我认为),Jenkins 需要 Java7。另请注意,如果系统默认值仍然是 Java 6,则必须将 java 二进制路径 (JAVA) 设置为正确的版本。最后,对于想知道这些变量在哪里设置的人,它位于 Jenkins 上的安装说明中列出的配置文件中网页(例如对于 Debian,它是 /etc/default/jenkins)。
使用 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 配置的名称
在 CentOS 6.x 和 Redhat 6.x 系统上,openjdk-devel 软件包包含 jdk。如果您熟悉 RedHat 中使用的 -devel 模式,这很明智,但如果您正在寻找符合 java 命名标准的 jdk 包,则会感到困惑。
我只是想为 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 位置的路径。
<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>
您也可以使用 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_HOME
从jdk12降级并不是答案中所说的合理选择。所以我做了一个试错实验,我让 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)
openjdk-6
是 Java 运行时,而不是 JDK(javac
例如,包含 . 安装openjdk-6-jdk
.
Maven 还需要 JDK。
[编辑]安装 JDK 后,使用/usr/lib/jvm/java-6-openjdk
for JAVA_HOME
(即不带该jre
部分)。
这是一个旧线程,但对于需要特定 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 安装没有启动
如果有人有类似的问题,我对相关软件包使用默认的 sudo apt-get 安装,以下是正确的设置:
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386
和
MAVEN_HOME=/usr/share/maven2
对于那些遇到此问题并有权配置 Jenkins 代理的人,您可以JAVA_HOME
从 Jenkins > 节点 > “代理名称” > 配置页面进行设置:
在詹金斯尝试JAVA_HOME
设置/usr/lib/jvm/java-6-openjdk
从 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。
在 Ubuntu 12.04 中,我必须安装 openjdk-7-jdk
然后javac工作了!
然后我可以使用
/usr/lib/jvm/java-7-openjdk-amd64
从http://pkg.jenkins-ci.org/redhat/下载包 rpm 包, 您可以提供额外的 java 位置,就像我的系统中有默认的 1.7 java 但我使用 /opt/jdk1.8.0_60/bin/java詹金斯 打开 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
我看到 Eclipse > Preferences>installed JREs > JRE Definition 我找到了 java_home 的目录,所以它是 /Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home