Ubuntu 下 Java 编译失败的原因很多,下面按常见原因 → 排查方法 → 解决方式给你梳理一下,你可以对照看是哪一种。
Ubuntu 默认可能只有 Java 运行环境,没有编译器 javac。
检查:
javac -version
如果提示:
command not found
说明没装 JDK。
解决:
sudo apt update
sudo apt install default-jdk
# 或指定版本
sudo apt install openjdk-17-jdk
有时装了 JDK,但编译工具找不到。
检查:
echo $JAVA_HOME
如果为空:
解决:
sudo update-alternatives --config java
然后:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
(路径按你实际版本改)
⚠️ 建议写进 ~/.bashrc 或 ~/.zshrc
Java 要求:
public class Hello {}
文件名必须是:
Hello.java
否则会报错:
class Hello is public, should be declared in a file named Hello.java
Ubuntu 下路径含中文、空格,有时会导致编译失败。
建议:
javac -encoding UTF-8 Hello.java
| 报错信息 | 原因 |
|---|---|
javac: command not found |
没装 JDK |
package does not exist |
缺 jar 或 classpath 错 |
cannot find symbol |
拼写/导入错误 |
invalid source release |
JDK 版本不匹配 |
Permission denied |
没执行权限 |
java -version
javac -version
echo $JAVA_HOME
pwd
ls
你可以直接把完整报错信息贴出来(复制终端内容),例如:
Hello.java:3: error: cannot find symbol
我可以一行一行帮你定位 ✅
你是 普通 java 文件 还是 Maven / Gradle 项目?