启动Jenkins bash:/ usr/bin/java:没有这样的文件或目录

Jon*_*rey 6 java bash centos jenkins centos6

我有一个CentOS服务器,我正在尝试运行jenkins作为服务:

service jenkins start
Run Code Online (Sandbox Code Playgroud)

我正在以root用户身份运行,我收到了这样的回复:

Starting Jenkins bash: /usr/bin/java: No such file or directory
                                                       [FAILED]
Run Code Online (Sandbox Code Playgroud)

echo在命令行上做了一些事情:

[root@xyz opt]# echo $JAVA_HOME
/opt/jdk
[root@xyz opt]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/opt/jdk/bin:/opt/grails/bin
[root@xyz opt]# java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
[root@xyz opt]# which java
/opt/jdk/bin/java
Run Code Online (Sandbox Code Playgroud)

我在任何jenkins文件中都看不到任何java配置.有任何想法吗?

Zee*_*han 5

Jenkins需要java启动,在你的情况下/usr/bin/目录java不可用

如果你去/etc/init.d/打开jenkins文件,你会发现:

candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.6.0/bin/java
/usr/lib/jvm/jre-1.6.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/bin/java
"
Run Code Online (Sandbox Code Playgroud)

这些是jenkins查找java的路径,在您的情况下,java不存在于上述任何路径中.

因此,寻找您拥有java的路径,并在上面的jenkins文件中添加该路径.

由于你有java in /opt/jdk/bin,然后在jenkins文件中添加:

    candidates="
/opt/jdk/bin/java <----Add here 
/etc/alternatives/java
/usr/lib/jvm/java-1.6.0/bin/java
/usr/lib/jvm/jre-1.6.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/bin/java
"
Run Code Online (Sandbox Code Playgroud)


sau*_*edo 4

尝试使用以下方法修复它:

ln -s /opt/jdk/bin/java /usr/bin/java
Run Code Online (Sandbox Code Playgroud)

服务实用程序正在使用的脚本文件可能是 /etc/init.d/jenkins 您也可以编辑此文件...