在 Ubuntu 上编译 Java 报错,原因有很多。下面按最常见情况 + 解决步骤给你一个排查清单,你可以对照看看是哪一种。
javac: command not found说明:没装 JDK,或没配置环境变量。
✅ 解决:
# 查看是否安装
java -version
javac -version
如果 javac 不存在:
sudo apt update
sudo apt install default-jdk
安装后再次:
javac -version
现象:
error: invalid source release: 11
✅ 解决:
sudo update-alternatives --config java
sudo update-alternatives --config javac
选择你需要的版本(如 JDK 11 / 17)。
错误示例:
class HelloWorld is public, should be declared in a file named HelloWorld.java
✅ 解决:
public class 的名字 必须 和文件名一致public class HelloWorld {}
文件名必须是:
HelloWorld.java
❌ 错误:
java HelloWorld.java
✅ 正确:
javac HelloWorld.java
java HelloWorld
现象:
error: illegal character
✅ 解决:
✅ 解决:
javac -encoding UTF-8 HelloWorld.java
例如:
package com.demo;
但文件不在:
com/demo/Hello.java
✅ 解决:
package 语句你可以直接把 完整报错信息 贴出来,比如:
javac Hello.java
Hello.java:3: error: cannot find symbol
我可以逐行帮你分析。
java -version
javac -version
pwd
ls
javac 你的文件.java
把输出贴给我即可 ✅
如果你愿意,我也可以一步一步远程式带你排查。