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

Posted

技术标签:

【中文标题】启动 Jenkins bash:/usr/bin/java:没有这样的文件或目录【英文标题】:Starting Jenkins bash: /usr/bin/java: No such file or directory 【发布时间】:2013-11-30 15:22:10 【问题描述】:

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

service jenkins start

我以root 用户身份运行,我收到以下回复:

Starting Jenkins bash: /usr/bin/java: No such file or directory
                                                       [FAILED]

我在命令行中 echo'ed 了一些东西:

[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

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

【问题讨论】:

【参考方案1】:

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
"

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

因此,查找您拥有 java 的路径并将该路径添加到上述 jenkins 文件中。

既然您在/opt/jdk/bin 中有java,那么将它添加到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
"

【讨论】:

【参考方案2】:

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

ln -s /opt/jdk/bin/java /usr/bin/java

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

【讨论】:

以上是关于启动 Jenkins bash:/usr/bin/java:没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章

Pybot在Jenkins shell执行中没有看到“which”命令

-bash: /usr/bin/mvn: Too many levels of symbolic links

Jenkins + docker ,容器中跑docker服务

shell脚本开头#!/usr/bin/env bash,#!/usr/bin/bash,#!/bin/bash的比较

适用于 Windows 的 Git:Git\bin\bash.exe 和 Git\usr\bin\bash.exe 之间的区别

jenkins发布普通项目配置自动上线自动部署