在 CentOS 上 Java 编译失败 的原因有很多种,下面按最常见原因 → 排查方法 → 解决办法给你一个系统性的梳理。
Java 编译需要 JDK,不是 JRE。
现象
javac: command not found
检查
which javac
java -version
解决
# CentOS 7
yum install java-1.8.0-openjdk-devel
# CentOS 8 / Stream
dnf install java-11-openjdk-devel
现象
检查
echo $JAVA_HOME
解决
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_PATH/bin:$PATH
写入:
vi ~/.bashrc
现象
error: cannot find symbol
error: ';' expected
原因
检查
javac -version
解决
现象
非法字符: \ufeff
解决
javac -encoding UTF-8 xxx.java
现象
class Xxx is public, should be declared in a file named Xxx.java
规则
public class 名 = 文件名现象
package com.xxx does not exist
解决
javac -cp lib/*.jar Main.java
现象
Permission denied
解决
chmod +x *.sh
chown -R user:user project/
# 1. 确认 javac 是否存在
which javac
# 2. 查看 JDK 版本
javac -version
# 3. 简化测试
echo 'public class T{public static void main(String[]a){System.out.println("ok");}}' > T.java
javac T.java
java T
你可以直接贴出:
我可以直接帮你精确定位并给出解决方案。