在 Ubuntu 上 Java 编译失败的原因有很多,下面我按常见原因 → 排查方法 → 解决办法给你系统梳理一下,你可以对照看看是哪一种。
很多人只装了 JRE,不能编译。
java -version
javac -version
javac 命令不存在 → 没装 JDK解决:
sudo apt update
sudo apt install default-jdk
# 或指定版本
sudo apt install openjdk-17-jdk
编译某些项目(如 Maven / Gradle)会失败。
echo $JAVA_HOME
如果为空:
sudo apt install openjdk-17-jdk
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
可写入:
nano ~/.bashrc
添加:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
java Hello.java(这是运行,不是编译)javac Hello.javapublic class Hello {}
文件必须叫:
Hello.java
package com.demo;
文件必须在:
com/demo/Test.java
编译:
javac com/demo/Test.java
javac -cp . Hello.java
java -cp . Hello
中文注释或 UTF-8 文件可能报错:
javac -encoding UTF-8 Hello.java
ls -l Hello.java
无读权限:
chmod +r Hello.java
mvn -version
失败通常是:
sudo apt install maven
如果你愿意,可以把完整的报错信息贴出来,例如:
error: package does not exist
cannot find symbol
javac: command not found
我可以直接帮你定位是哪一种问题,甚至一步一步教你修。
javac -version 能用javac 编译如果你愿意,告诉我:
我可以直接帮你解决。