在 CentOS 上 Java 编译失败 的原因很多,下面按最常见原因 → 排查方法给你一个系统清单,你可以对照看看是哪一种。
现象
javac: command not found
检查
java -version
javac -version
如果 java 有,javac 没有 → 说明只装了 JRE。
解决
yum install -y java-1.8.0-openjdk-devel
# 或
yum install -y java-11-openjdk-devel
现象
mvn / gradle 报错找不到 JDK检查
echo $JAVA_HOME
which javac
解决
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
写入:
vi ~/.bashrc
现象
UnsupportedClassVersionError
检查
alternatives --config java
alternatives --config javac
解决 统一使用同一个 JDK 版本。
现象
error: lambda expressions are not supported in -source 1.5
解决
javac -source 1.8 -target 1.8 XXX.java
或修改 pom.xml / build.gradle 的 Java 版本。
现象
package xxx does not exist
解决
-cpjavac -cp lib/* Main.java
现象
cannot find symbol
检查
public class 是否一致package 是否匹配java.lang.OutOfMemoryError
export JAVA_OPTS="-Xmx512m"
java -version
javac -version
echo $JAVA_HOME
ls $JAVA_HOME/bin | grep javac
请把以下信息贴出来:
cat /etc/redhat-release)我可以直接告诉你 是哪一行导致的失败以及如何修。