启动 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 之间的区别