在 Debian 上编译 Java 报错,原因可能有很多种。我按最常见情况给你一个排查和处理思路,你可以对照看看是哪一种。
很多人只装了 JRE,导致 javac 不存在。
java -version
javac -version
java 有,javac 没有 → 只装了 JREsudo apt update
sudo apt install default-jdk
# 或指定版本
sudo apt install openjdk-17-jdk
command not found: javac原因:没装 JDK 或不在 PATH
解决:
sudo apt install default-jdk
which javac
error: package xxx does not exist原因:
解决:
mvn clean compile
javac -cp lib/* Main.java
unsupported class file major version原因:JDK 版本不兼容(如用 JDK 17 编译老项目)
解决:
java -version
sudo apt install openjdk-11-jdk
sudo update-alternatives --config java
sudo update-alternatives --config javac
javac: invalid flag原因:编译命令写错(参数顺序/拼写)
示例错误:
javac Main.java -d out
正确写法:
javac -d out Main.java
mvn compile
常见问题:
解决:
mvn -U clean compile
| 用途 | 推荐 |
|---|---|
| 学习 | openjdk-17 |
| 老项目 | openjdk-8 / 11 |
| 服务器 | openjdk-17 (LTS) |
你可以把完整报错信息贴出来,例如:
javac Version.java
Version.java:3: error: package java.util does not exist
或者:
cat /etc/os-release)我可以一步一步帮你修 ✅