在 Ubuntu 下用 Java 编译报错,原因很多,一般是环境、命令、代码、权限这几类。下面按「最常见 → 排查步骤 → 常见错误示例」给你一个实用清单。
java -version
javac -version
java 没有 javac → 没装 JDKsudo apt update
sudo apt install default-jdk
# 或指定版本
sudo apt install openjdk-17-jdk
javac Hello.java
java Hello
java Hello.java # 旧版本 Java 不支持
javac Hello # 没写 .java
javac: command not found原因:没装 JDK 或 PATH 没配置
解决
sudo apt install default-jdk
which javac
error: class Hello is public, should be declared in a file named Hello.java原因:文件名和 public 类名不一致
解决
public class Hello {}
→ 文件必须叫 Hello.java
package xxx does not exist原因:
-cp解决
javac -cp . com/example/Main.java
java -cp . com.example.Main
could not find or load main class原因:
✅ 正确示例:
project/
└── com/example/Main.java
cd project
javac com/example/Main.java
java com.example.Main
javac -encoding UTF-8 Hello.java
javac -version-cp 指定依赖你可以贴出:
我可以直接告诉你是哪一行、为什么、怎么改。