在 Ubuntu 上编译 Java 出错,通常可以从环境、命令、代码、依赖四个方面来排查。下面给你一个系统化的处理思路:
java -version
javac -version
javac 提示 command not foundsudo apt update
sudo apt install openjdk-17-jdk
(Java 8 可用 openjdk-8-jdk)
which javac
javac Hello.java
✅ 正确前提:
public class 名一致// Hello.java
public class Hello {
public static void main(String[] args) {
System.out.println("Hello");
}
}
编译:
javac Hello.java
运行:
java Hello
error: unmappable character
解决:
javac -encoding UTF-8 Hello.java
class X is public, should be declared in a file named X.java
✅ 修改文件名或类名保持一致
package xxx does not exist
解决:
javac -cp lib/xxx.jar Main.java
lambda expressions are not supported
解决:
javac --release 17 Main.java
请把完整报错内容贴出来,例如:
Main.java:5: error: cannot find symbol
这样能精准定位问题。
如果你愿意,可以发我:
我可以一步步帮你改到能编译通过 ✅