You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu系统下通过Jenkins Shell运行Java程序报错求助

问题分析

从报错日志能明确核心问题:首先无法切换到指定目录 /home/ironman/Desktop/GitDemo2,后续找不到Java源文件、主类都是这一问题引发的连锁反应。

解决方案

1. 验证目标目录的有效性

先在Ubuntu终端执行以下命令,确认目录是否真实存在:

ls -ld /home/ironman/Desktop/GitDemo2

如果输出提示No such file or directory,说明路径拼写错误,直接修正Shell命令里的目录路径即可。

2. 赋予Jenkins用户目录访问权限

Jenkins默认以jenkins系统用户运行,该用户大概率没有访问/home/ironman/Desktop/目录的权限,可通过两种方式解决:

  • 直接开放目录的公共访问权限:
sudo chmod o+rx /home/ironman/
sudo chmod o+rx /home/ironman/Desktop/
sudo chmod o+rx /home/ironman/Desktop/GitDemo2/
  • 将Jenkins用户加入ironman用户组(更安全的方式):
sudo usermod -aG ironman jenkins

执行完上述命令后,重启Jenkins服务生效:

sudo systemctl restart jenkins

3. 移除Shell命令中的sudo

使用sudo编译会让生成的.class文件归属root用户,后续Jenkins用户运行时会因权限不足无法读取,还会干扰Java环境变量。修改后的Shell命令应为:

cd /home/ironman/Desktop/GitDemo2
javac Hello.java
java Hello

4. 可选:排查Java环境与文件存在性

如果上述步骤仍未解决问题,可在Shell命令开头添加验证环节,确认Jenkins环境的Java可用性和目标文件状态:

which javac
which java
java -version
cd /home/ironman/Desktop/GitDemo2
ls -l Hello.java
javac Hello.java
java Hello

内容的提问来源于stack exchange,提问作者kuldeep singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 10:32:35