Jenkins,指定JAVA_HOME

时间:2011-11-18 16:26:39

标签: java ubuntu jenkins java-home

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

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

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

它也无法接受我的maven安装。

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

14 个答案:

答案 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`
  • 介绍了以下提到的行。 (注意:在您的计算机中插入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)
    

答案 5 :(得分:1)

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

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

MAVEN_HOME=/usr/share/maven2

答案 6 :(得分:1)

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

  • Windows Server 2008 R2 Standard,SP1
  • Jenkins 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位置。

您也可以使用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

作为路径而jenkins不再抱怨了。

答案 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

Setting "per agent" environment variables

答案 13 :(得分:-2)

我看到了 Eclipse&gt;首选项&gt;已安装的JRE&gt; JRE定义 我找到了java_home的目录 所以这是 /Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home