Jenkins配置节点报错:bash: /root/.jenkins/jdk/bin/java: 没有那个文件或目录

这篇博客记录了在配置Jenkins节点时遇到的错误:bash:/root/.jenkins/jdk/bin/java:没有那个文件或目录。错误原因是Java路径不正确。解决方法包括在 Slave 机上配置正确的Java路径或者创建软链接到正确的Java可执行文件。通过这些步骤,可以确保Jenkins节点能够正确识别并使用Java环境。

Jenkins配置节点报错:bash: /root/.jenkins/jdk/bin/java: 没有那个文件或目录

在这里插入图片描述

SSHLauncher{host='192.168.111.129', port=22, credentialsId='aa9fc1b1-ccc2-470f-a612-f20e32b55dea', jvmOptions='', javaPath='', prefixStartSlaveCmd='', suffixStartSlaveCmd='', launchTimeoutSeconds=60, maxNumRetries=10, retryWaitTime=15, sshHostKeyVerificationStrategy=hudson.plugins.sshslaves.verifiers.KnownHostsFileKeyVerificationStrategy, tcpNoDelay=true, trackCredentials=true}
[01/05/22 17:34:03] [SSH] Opening SSH connection to 192.168.111.129:22.
Searching for 192.168.111.129 in /root/.ssh/known_hosts
Searching for 192.168.111.129:22 in /root/.ssh/known_hosts
[01/05/22 17:34:03] [SSH] SSH host key matches key in Known Hosts file. Connection will be allowed.
[01/05/22 17:34:03] [SSH] 认证成功。
[01/05/22 17:34:04] [SSH] The remote user's environment is:
BASH=/usr/bin/bash
BASHOPTS=cmdhist:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_EXECUTION_STRING=set
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="2" [2]="46" [3]="2" [4]="release" [5]="x86_64-redhat-linux-gnu")
BASH_VERSION='4.2.46(2)-release'
DIRSTACK=()
EUID=0
GROUPS=()
HOME=/root
HOSTNAME=bogon
HOSTTYPE=x86_64
ID=0
IFS=$' \t\n'
LANG=zh_CN.UTF-8
LESSOPEN='||/usr/bin/lesspipe.sh %s'
LOGNAME=root
MACHTYPE=x86_64-redhat-linux-gnu
MAIL=/var/mail/root
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
PIPESTATUS=([0]="0")
PPID=5436
PS4='+ '
PWD=/root
SELINUX_LEVEL_REQUESTED=
SELINUX_ROLE_REQUESTED=
SELINUX_USE_CURRENT_RANGE=
SHELL=/bin/bash
SHELLOPTS=braceexpand:hashall:interactive-comments
SHLVL=1
SSH_CLIENT='192.168.111.129 37138 22'
SSH_CONNECTION='192.168.111.129 37138 192.168.111.129 22'
TERM=dumb
UID=0
USER=root
XDG_RUNTIME_DIR=/run/user/0
XDG_SESSION_ID=25
_=/etc/bashrc
[01/05/22 17:34:04] [SSH] Checking java version of /root/.jenkins/jdk/bin/java
Couldn't figure out the Java version of /root/.jenkins/jdk/bin/java
bash: /root/.jenkins/jdk/bin/java: 没有那个文件或目录

[01/05/22 17:34:04] [SSH] Checking java version of java
Couldn't figure out the Java version of java
bash: java: 未找到命令

[01/05/22 17:34:04] [SSH] Checking java version of /usr/bin/java
Couldn't figure out the Java version of /usr/bin/java
bash: /usr/bin/java: 没有那个文件或目录

[01/05/22 17:34:04] [SSH] Checking java version of /usr/java/default/bin/java
Couldn't figure out the Java version of /usr/java/default/bin/java
bash: /usr/java/default/bin/java: 没有那个文件或目录

[01/05/22 17:34:04] [SSH] Checking java version of /usr/java/latest/bin/java
Couldn't figure out the Java version of /usr/java/latest/bin/java
bash: /usr/java/latest/bin/java: 没有那个文件或目录

[01/05/22 17:34:04] [SSH] Checking java version of /usr/local/bin/java
Couldn't figure out the Java version of /usr/local/bin/java
bash: /usr/local/bin/java: 没有那个文件或目录

[01/05/22 17:34:04] [SSH] Checking java version of /usr/local/java/bin/java
Couldn't figure out the Java version of /usr/local/java/bin/java
bash: /usr/local/java/bin/java: 没有那个文件或目录

java.io.IOException: Java not found on hudson.slaves.SlaveComputer@331d1385. Install a Java 8 version on the Agent.
	at hudson.plugins.sshslaves.JavaVersionChecker.resolveJava(JavaVersionChecker.java:89)
	at hudson.plugins.sshslaves.SSHLauncher$1.call(SSHLauncher.java:454)
	at hudson.plugins.sshslaves.SSHLauncher$1.call(SSHLauncher.java:423)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
[01/05/22 17:34:04] Launch failed - cleaning up connection
[01/05/22 17:34:04] [SSH] 连接关闭。

解决办法一:
在Slave机上找到java命令目录,配置在节点上
在这里插入图片描述
解决办法二:建立软连接

cd /root/.jenkins/
mkdir jdk
cd jdk/
mkdir bin
cd bin/
ln -s /usr/local/jdk1.8.0_231/bin/java /root/.jenkins/jdk/bin/java
在使用JDK时遇到`java`命令找不到的问题,通常表现为`-bash: /usr/bin/java: No such file or directory``-bash: /usr/local/jdk1.7.0_71/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory`等错误信息。这类问题的根源通常与环境变量配置、系统依赖库缺失路径设置错误有关。 ### 1. 检查JDK安装路径 首先确认JDK是否已经正确安装。可以通过以下命令查找JDK的安装路径: ```bash update-alternatives --config java ``` 如果该命令无法执行提示没有找到`update-alternatives`,则需要手动检查常见的JDK安装目录,如`/usr/local/jdk1.x.x_xx``/opt/jdk1.x.x_xx`等。确认JDK安装路径后,确保`/usr/bin/java`指向了正确的JDK可执行文件。 ### 2. 配置环境变量 编辑`~/.bashrc``/etc/profile`文件,添加修改以下内容以正确配置`JAVA_HOME`和`PATH`: ```bash export JAVA_HOME=/usr/local/jdk1.7.0_71 export PATH=$JAVA_HOME/bin:$PATH ``` 保存文件后,运行以下命令使配置生效: ```bash source ~/.bashrc ``` ```bash source /etc/profile ``` ### 3. 检查系统依赖库 如果出现类似`/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory`的错误,说明系统缺少某些必要的32位库文件。可以通过以下命令安装所需的库: ```bash yum install glibc.i686 ``` 对于基于Debian的系统,可以使用: ```bash apt-get install libc6:i386 ``` ### 4. 创建符号链接 如果`/usr/bin/java`不存在指向了错误的位置,可以手动创建符号链接: ```bash ln -s /usr/local/jdk1.7.0_71/bin/java /usr/bin/java ``` 确保替换为实际的JDK安装路径。 ### 5. 检查Jenkins配置(如果适用) 如果问题出现在启动Jenkins时,还需要确保Jenkins服务使用的Java路径正确。可以编辑`/etc/default/jenkins`文件,设置`JAVA_HOME`: ```bash JAVA_HOME=/usr/local/jdk1.7.0_71 ``` 保存文件后,重新启动Jenkins服务: ```bash service jenkins restart ``` ### 6. 验证安装 最后,运行以下命令验证Java是否已经正确安装并配置: ```bash java -version javac -version ``` 如果命令能够正常输出版本信息,则说明问题已解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值