你说的“Ubuntu Java 权限问题”比较宽泛,我先把最常见的几类情况和对应解决办法列出来,你对照看看是哪一种,或者直接告诉我具体报错。
Permission deniedbash: ./java: Permission denied
解决:
chmod +x /path/to/java
如果是 JDK 目录:
sudo chmod -R 755 /usr/lib/jvm/xxx
java -jar 没权限java -jar app.jar
Permission denied
解决:
chmod +x app.jar
# 或
java -jar app.jar
如果是文件所在目录权限问题:
ls -ld /path/
sudo chmod 755 /path
原因:Linux 用户权限不足
解决:
sudo chown -R youruser:youruser /data
sudo chmod -R 755 /data
如果是服务(systemd)运行:
sudo chown -R www-data:www-data /data
java.lang.RuntimeException: Unable to create file
编辑服务文件:
sudo vim /etc/systemd/system/myapp.service
确保:
User=youruser
WorkingDirectory=/opt/app
然后:
sudo systemctl daemon-reload
sudo systemctl restart myapp
Permission denied (bind failed)
✅ 推荐(不用 root):
sudo setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/java
❌ 不推荐:
sudo java -jar app.jar
sudo java -version
command not found
解决:
sudo update-alternatives --config java
或
sudo su
export PATH=$PATH:/usr/lib/jvm/java-17/bin
sudo aa-status
临时测试:
sudo systemctl stop apparmor
java -jar 还是服务运行我可以精准给你一条命令解决。