詹金斯在 linux 中无法识别我的 java
Posted
技术标签:
【中文标题】詹金斯在 linux 中无法识别我的 java【英文标题】:Jenkins not recognizing my java in linux 【发布时间】:2015-01-27 10:48:16 【问题描述】:我正在使用 OpenSuse 并尝试使用 rpm 安装 Jenkins。我在这方面有很多麻烦:
aquarius:/home/jeevan/Downloads # service jenkins start
Job for jenkins.service failed. See 'systemctl status jenkins.service' and 'journalctl -xn' for details.
这个问题在 Jenkins website 中明确说明是一个 Java 问题。
但我已经通过从 oracle 网站下载并配置了“update-alternatives”在我的机器上安装了 java
aquarius:/usr/lib/jenkins # java -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
aquarius:/usr/lib/jenkins # javac -version
javac 1.8.0_25
aquarius:/usr/lib/jenkins # whereis java
java: /usr/bin/java /usr/lib64/java /etc/java /usr/share/java
aquarius:/usr/lib/jenkins # echo $JAVA_HOME
/usr/java/latest
aquarius:/usr/lib/jenkins # update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib64/jvm/jre-1.7.0-openjdk/bin/java 17147 auto mode
* 1 /usr/java/jdk1.8.0_25/bin/java 1 manual mode
2 /usr/lib64/jvm/jre-1.5.0-gcj/bin/java 1500 manual mode
3 /usr/lib64/jvm/jre-1.7.0-openjdk/bin/java 17147 manual mode
Press enter to keep the current choice[*], or type selection number: 1
aquarius:/usr/lib/jenkins # update-alternatives --config javac
There are 2 choices for the alternative javac (providing /usr/bin/javac).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib64/jvm/java-1.5.0-gcj/bin/javac 1500 auto mode
* 1 /usr/java/jdk1.8.0_25/bin/javac 1 manual mode
2 /usr/lib64/jvm/java-1.5.0-gcj/bin/javac 1500 manual mode
Press enter to keep the current choice[*], or type selection number: 1
aquarius:/usr/lib/jenkins # ls
jenkins.war
aquarius:/usr/lib/jenkins # whereis jenkins
jenkins: /usr/lib/jenkins
aquarius:/usr/lib/jenkins #
谁能给我一个解决方案。
【问题讨论】:
【参考方案1】:您正在使用 java 8 启动 jenkins。这是一个相当新的 jdk,最近刚刚获得了生产就绪状态。
jenkins JIRA 中的这个错误描述了一个类似的情况:https://issues.jenkins-ci.org/browse/JENKINS-22270
建议的解决方案是切换到 java 7。你试过了吗?
【讨论】:
我有另一个系统,它使用 jdk 8 设置并且工作正常。这里有两个系统 jdk 8 + jenkins 工作正常。 如果它在其他系统中使用 jdk 8,它需要使用 jdk 8 对吗?我认为缺少一些链接。如何找到它? 嗯,根据詹金斯文档,理论上它应该适用于任何 jdk >=1.6。所以1.8应该没问题。 我尝试为 /usr/bin/jar 创建一个链接,现在“service jenkins start”正在运行。但是在浏览器中什么都没有出现。现在,如果我执行“service jenkins status”,它会显示“Unit jenkins.service 进入失败状态。” 我从来没有使用过 ubuntu 替代机制,因为我总是遇到一些问题。我总是手动安装 java,只需在/opt
中用 java 复制解压的 tar,例如在/opt/jdk1.7_51
中,然后将符号链接/opt/jdk
指向我要使用的java,然后在/usr/local/bin
中创建符号链接,例如sudo ln -s /opt/jdk/bin/java /usr/local/bin/java
这样我就有了一个非常灵活的机制来切换java版本,安装新版本等。也许你可以自己安装java并改变jenkins开始它?以上是关于詹金斯在 linux 中无法识别我的 java的主要内容,如果未能解决你的问题,请参考以下文章
Mocha SonarQube 无法识别 Node.JS 代码