Ubuntu 下 Java 编译失败原因很多,按下面步骤排查基本都能解决:
java -version
javac -version
command not found → 没装 JDKjava 有,javac 没有 → 只装了 JRE,没装 JDKsudo apt update
sudo apt install openjdk-17-jdk
(也可用 8 / 11 / 21,看项目要求)
echo $JAVA_HOME
如果为空:
sudo update-alternatives --config java
找到路径,例如:
/usr/lib/jvm/java-17-openjdk-amd64
设置:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
永久生效:
nano ~/.bashrc
把上面两行加进去,然后:
source ~/.bashrc
error: package xxx does not exist
✅ 解决:
mvn clean compile
gradle build
unmappable character for encoding ASCII
✅ 解决:
javac -encoding UTF-8 Hello.java
class Hello is public, should be declared in a file named Hello.java
✅ 解决:
public class 名字 = 文件名error: lambda expressions are not supported in -source 7
✅ 解决:
javac -source 17 -target 17 Hello.java
或升级 JDK
如果你愿意,把完整的报错信息发出来(或截图),我可以直接告诉你哪一行错了、怎么改。
你可以直接贴:
javac xxx.java
后面的所有红色输出。