在 Ubuntu 上用 Java 编译时报错,原因有很多,下面按最常见情况给你一个排查清单。你可以对照看看是哪一种。
很多人装了 Java 运行环境,但没有编译器 javac。
检查:
javac -version
如果提示:
command not found
说明没装 JDK。
✅ 解决:
sudo apt update
sudo apt install default-jdk
JAVA_HOME 没配置编译时某些工具(如 Maven、Gradle)会报错。
检查:
echo $JAVA_HOME
如果是空的,就需要配置。
✅ 解决(示例):
sudo apt install default-jdk
export JAVA_HOME=/usr/lib/jvm/default-java
可写入 ~/.bashrc:
echo 'export JAVA_HOME=/usr/lib/jvm/default-java' >> ~/.bashrc
source ~/.bashrc
Java 要求:
public class的名字必须和文件名一致
比如:
public class Hello {
}
文件必须叫:
Hello.java
否则会报类似:
class Hello is public, should be declared in a file named Hello.java
你在 /home/user 下编译,但代码在 /home/user/project
✅ 正确方式:
cd 项目目录
javac Hello.java
Ubuntu 对中文路径有时会有编码问题。
✅ 建议:
| 报错信息 | 原因 |
|---|---|
javac: command not found |
没装 JDK |
package does not exist |
缺少依赖或 classpath 错误 |
cannot find symbol |
拼写错误 / 没 import |
class name mismatch |
类名和文件名不一致 |
unsupported class file major version |
JDK 版本不兼容 |
# 1. 安装 JDK
sudo apt install default-jdk
# 2. 写代码
nano Hello.java
# 3. 编译
javac Hello.java
# 4. 运行
java Hello
你可以把完整报错信息贴出来(复制终端内容),或者告诉我:
我可以直接告诉你是哪一行、为什么错、怎么改 ✅