在 Ubuntu 下给 Java 相关权限,常见情况有几种,下面按最常见场景说明:
如果你是手动下载的 JDK/JRE(如 jdk-21/bin/java):
chmod +x /path/to/java
如果是整个 bin 目录:
chmod -R +x /path/to/jdk/bin
一般不建议用 root 跑 Java,推荐配置环境变量:
sudo nano /etc/profile
添加:
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
使生效:
source /etc/profile
chmod 755 /your/java/app
chown youruser:youruser /your/java/app -R
Java 不能直接用普通用户绑定低端口:
✅ 推荐方式(端口转发):
sudo apt install authbind
sudo touch /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
sudo chown youruser /etc/authbind/byport/80
authbind --deep java -jar app.jar
❌ 不推荐:用 sudo java
sudo java -jar app.jar
⚠️ 安全风险大,仅测试用
[Service]
User=appuser
ExecStart=/usr/bin/java -jar /opt/app/app.jar
如报权限错误:
sudo aa-status
sudo journalctl -xe
如果你能说清楚 具体场景(例如:运行 jar 报错、不能写文件、不能连端口),我可以给你精确命令。