Ubuntu 本身是可以编译 Java 的,如果你遇到“无法编译 Java”,通常不是系统不支持,而是环境或配置问题。下面按最常见原因给你梳理一下。
Ubuntu 默认只装了 JRE(运行环境),没有 JDK(开发工具),所以:
java -version # 能用
javac # 报错:command not found
安装 JDK(推荐 OpenJDK):
sudo apt update
sudo apt install openjdk-17-jdk
(也可以用 8 / 11 / 21,看项目需求)
验证:
javac -version
有些构建工具(Maven / Gradle / IDE)依赖 JAVA_HOME。
sudo update-alternatives --config java
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
写入:
~/.bashrc
然后:
source ~/.bashrc
❌ 错误:
java Hello.java
✅ 正确:
javac Hello.java
java Hello
(Java 11+ 支持 java Hello.java,但老项目不行)
public class 不一致chmod +x javac
或确认你是普通用户,不是权限被限制。
可尝试:
sudo apt --fix-broken install
which javac
javac -version
echo $JAVA_HOME
如果 which javac 没有输出,就是没装 JDK。
如果你愿意,可以把具体报错信息贴出来(比如终端提示的英文错误),我可以精准告诉你哪一步有问题。