在 Debian 上跑 Java 报错,原因非常多,需要看具体报错信息才能准确判断。下面我先给你一个常见原因清单 + 排查步骤,你可以对照看看是哪一种。
报错类似:
java: command not found
检查:
java -version
which java
解决:
sudo apt update
sudo apt install default-jdk
# 或指定版本
sudo apt install openjdk-17-jdk
报错类似:
Error: JAVA_HOME is not set
解决:
sudo apt install openjdk-17-jdk
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
永久生效:
echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
报错类似:
UnsupportedClassVersionError
说明:
解决:
java -version
javac -version
统一版本即可。
报错类似:
Permission denied
解决:
chmod +x your.jar
# 或
sudo java -jar app.jar
报错类似:
no main manifest attribute
或
Error: Unable to access jarfile
解决:
ls -l app.jar
java -jar app.jar
报错类似:
java.lang.OutOfMemoryError
解决:
java -Xms512m -Xmx1024m -jar app.jar
如果你是用 systemd 启动:
[Service]
Environment=JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
ExecStart=/usr/bin/java -jar /opt/app/app.jar
你可以直接贴出来:
java -jar xxx.jar)cat /etc/os-release
java -version
只要把报错原文贴出来,我可以直接告诉你是哪一行的锅。