在 Ubuntu 上 Java 编译失败的原因有很多,下面按常见原因 → 排查方法 → 解决办法给你一个系统性的排查指南。
java -version
javac -version
java 能运行但 javac 不行 → 只装了 JRE,没装 JDKcommand not found → Java 没装sudo apt update
sudo apt install openjdk-17-jdk
(也可以用 8 / 11,根据项目需要)
安装后再次检查:
javac -version
javac: command not found原因:没有安装 JDK
解决:
sudo apt install default-jdk
error: package xxx does not exist原因:
-cp解决:
javac -cp lib/* Main.java
classpath / 包路径错误例如:
package com.example;
但文件不在:
com/example/Main.java
解决:
package 一致javac com/example/Main.java
报错类似:
unmappable character for encoding ASCII
解决:
javac -encoding UTF-8 Main.java
例如:
var x = 10;
但用的是 Java 8
解决:
查看版本:
javac -version
update-alternatives --config java
update-alternatives --config javac
选择正确的 JDK 版本。
echo 'public class Test{public static void main(String[]a){System.out.println("ok");}}' > Test.java
javac Test.java
java Test
javac -Xlint:all Main.java
请把具体报错信息贴出来,或者告诉我:
我可以直接帮你定位问题 ✅