在 Ubuntu 上 Java 编译失败 的原因很多,下面按最常见原因给你一个排查清单,你可以对照看看是哪一种。
编译需要 JDK,不是 JRE。
java -version
javac -version
如果 javac 命令不存在:
sudo apt update
sudo apt install default-jdk
安装后:
java -version
javac -version
echo $JAVA_HOME
如果为空,可以设置:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
(路径按你实际 JDK 版本来)
java Hello.java
javac Hello.java
java Hello
Java 要求:
public class Hello {
}
文件名必须是:
Hello.java
否则会报:
class X is public, should be declared in a file named X.java
如果有:
package com.demo;
目录结构必须是:
com/demo/Main.java
编译:
javac com/demo/Main.java
运行:
java com.demo.Main
Ubuntu 下:
都可能导致编译失败。
✅ 建议:
中文注释或字符串乱码:
javac -encoding UTF-8 Hello.java
如果有多个 .java 文件:
javac *.java
如果用第三方 jar:
javac -cp lib/xxx.jar Main.java
通常是:
javac -version
java -version
如果不一致,比如:
会报错。
如果你愿意,可以把 完整的报错信息 贴出来,比如:
Hello.java:3: error: ...
我可以直接帮你定位是哪一类问题。
javacjavac 而不是 java如果你愿意,告诉我:
我可以一步到位帮你解决。