在 Debian 上编译 Java 程序时常见的报错原因有很多,下面按最常见 → 较少见的顺序给你一个排查清单,你可以对照看看属于哪一类(如果你愿意,可以把具体报错信息贴出来,我可以精准定位)。
现象
javac: command not found
原因
Debian 默认可能只装了 default-jre,没有 javac。
解决
sudo apt update
sudo apt install default-jdk
或指定版本:
sudo apt install openjdk-17-jdk
javac 不在 PATH现象
javac -version
bash: javac: command not found
但:
java -version
正常。
解决 确认 JDK 路径:
ls /usr/lib/jvm/
设置环境变量(示例):
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
(可写入 ~/.bashrc)
现象
error: invalid source release
error: unsupported class file major version
原因
解决 查看版本:
java -version
javac -version
统一版本,或指定编译版本:
javac --release 11 Hello.java
现象
class X is public, should be declared in a file named X.java
解决
public class Hello → 文件名必须是 Hello.javapublic现象
error: unmappable character for encoding ASCII
解决
javac -encoding UTF-8 Hello.java
现象
package xxx does not exist
解决
使用 -cp:
javac -cp lib/xxx.jar Hello.java
查看
update-alternatives --config java
update-alternatives --config javac
选择正确的版本。
现象
Permission denied
解决
chmod +x Hello.java
或不要在 /root 或只读目录编译。
请依次执行:
java -version
javac -version
echo $JAVA_HOME
如果其中任何一个失败,问题基本就在这里。
你可以直接贴出:
java -versionjavac -versionjavac Hello.java)我可以逐行帮你分析,甚至告诉你该装哪个包、改哪一行。