24

我使用 apt-get 在我的 ubuntu 机器上安装了 openjdk-6-jdk。

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

但是,当我JAVA_HOME在 Jenkins 中指定该目录时:“配置系统”,它返回错误消息,指出该目录看起来不像 jdk 目录。

它也无法获取我的 Maven 安装。

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

4

14 回答 14

21

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

来自 Kyle Strand 的评论:

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

于 2011-11-18T16:47:13.803 回答
8

使用 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 配置的名称

于 2017-03-28T12:23:30.907 回答
5

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

于 2012-07-25T22:14:39.680 回答
4

我只是想为 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>

您也可以使用 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>
于 2018-04-24T17:55:22.527 回答
4

我面临同样的问题,对我来说,JAVA_HOMEjdk12降级并不是答案中所说的合理选择。所以我做了一个试错实验,我让 Jenkins 运行,甚至没有降级JAVA_HOME.

脚步:

  • 打开配置$ sudo vi /etc/init.d/jenkins
  • 评论以下行:
 #JAVA=`type -p java`
  • 介绍了下面提到的线路。(注意:在你的机器中插入JDK的具体路径。)
 JAVA=`type -p /usr/lib/jdk8/bin/java`
  • 重新加载 systemd 管理器配置:$ sudo systemctl daemon-reload
  • 启动 Jenkins 服务:$ 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)
    
于 2020-05-31T19:21:14.150 回答
3

openjdk-6是 Java 运行时,而不是 JDK(javac例如,包含 . 安装openjdk-6-jdk.

Maven 还需要 JDK。

[编辑]安装 JDK 后,使用/usr/lib/jvm/java-6-openjdkfor JAVA_HOME(即不带该jre部分)。

于 2011-11-18T16:36:32.110 回答
2

这是一个旧线程,但对于需要特定 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 安装没有启动

于 2018-07-31T03:18:22.110 回答
1

如果有人有类似的问题,我对相关软件包使用默认的 sudo apt-get 安装,以下是正确的设置:

JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386

MAVEN_HOME=/usr/share/maven2
于 2011-11-25T16:45:17.510 回答
1

对于那些遇到此问题并有权配置 Jenkins 代理的人,您可以JAVA_HOME从 Jenkins > 节点 > “代理名称” > 配置页面进行设置:

设置“每个代理”环境变量

于 2019-06-23T05:21:07.457 回答
0

在詹金斯尝试JAVA_HOME设置/usr/lib/jvm/java-6-openjdk

于 2011-11-18T16:48:35.543 回答
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。

于 2012-08-13T10:55:19.523 回答
0

在 Ubuntu 12.04 中,我必须安装 openjdk-7-jdk

然后javac工作了!

然后我可以使用

/usr/lib/jvm/java-7-openjdk-amd64

因为路径和詹金斯不再抱怨了。

于 2014-06-03T10:15:19.170 回答
0

从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

于 2017-08-22T12:52:09.153 回答
-2

我看到 Eclipse > Preferences>installed JREs > JRE Definition 我找到了 java_home 的目录,所以它是 /Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home

于 2013-04-30T14:36:41.737 回答