在 Debian 上“编译 Java 失败”原因很多,需要先看具体报错。下面按最常见原因给你一个排查清单,你可以对照看看是哪一种。
Debian 默认可能只有 java(运行),没有 javac(编译)。
检查:
javac -version
如果提示:
command not found
说明没装 JDK。
✅ 解决:
sudo apt update
sudo apt install default-jdk
或指定版本:
sudo apt install openjdk-17-jdk
有些构建工具(如 Maven / Gradle)会失败。
查看:
echo $JAVA_HOME
如果是空的:
which javac
# 假设是 /usr/lib/jvm/java-17-openjdk-amd64
配置:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
永久生效:
echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' >> ~/.bashrc
例如:
package 和目录不一致public class 不一致示例错误:
error: class X is public, should be declared in a file named X.java
✅ 规则:
public class Hello → 文件名必须是 Hello.javacom.test → 目录必须是 com/test错误示例:
java Hello.java # ❌ 这是运行,不是编译
正确:
javac Hello.java
java Hello
如果用到第三方库:
javac -cp lib/xxx.jar Main.java
Maven 项目没构建:
mvn compile
/tmp 没权限java -version
javac -version
echo $JAVA_HOME
然后:
mkdir test && cd test
echo 'public class T { public static void main(String[] a){System.out.println("ok");}}' > T.java
javac T.java
java T
如果这一步都失败,把完整报错贴出来。
你可以直接发:
cat /etc/os-release)我可以一步一步帮你修。