在 CentOS 上编译 Java 程序报错,原因很多,需要先看具体报错信息。不过我可以先给你一份常见原因 + 排查解决清单,大多数情况都能对上。
javac: command not found原因:没装 JDK,只装了 JRE
解决:
# 查看是否已安装
java -version
which javac
# 安装 JDK(推荐 OpenJDK)
sudo yum install -y java-1.8.0-openjdk-devel
# 或 Java 11
sudo yum install -y java-11-openjdk-devel
安装后确认:
javac -version
UnsupportedClassVersionError原因:Java 版本不兼容(高版本编译,低版本运行)
解决:
java -version
javac -version
统一版本,例如:
javac -source 1.8 -target 1.8 Hello.java
package xxx does not exist原因:缺少依赖或 classpath 没设置
解决:
javac -cp .:lib/* Main.java
Maven 项目建议:
mvn clean package
报错示例:
非法字符 / 编码 GBK 的不可映射字符
解决:
javac -encoding UTF-8 Main.java
报错:
Permission denied
解决:
chmod +x 文件名
# 或
sudo javac Main.java
/root 下编译但权限不足建议:
mkdir ~/java_test
cd ~/java_test
请把下面信息发我,我可以直接帮你定位:
javac Hello.java)java -version
javac -version
cat /etc/centos-release
mkdir test && cd test
vi Hello.java
public class Hello {
public static void main(String[] args) {
System.out.println("Hello CentOS");
}
}
javac Hello.java
java Hello
如果你愿意,直接把报错贴出来,我可以一步一步帮你改到能编译通过 ✅