在 CentOS 上 Java 编译报错的原因有很多,不一定和系统是 CentOS 本身有关,更多是环境配置或代码问题。下面我按最常见原因帮你梳理一下,你可以对照看看是哪一种。
CentOS 默认可能只装了 java(JRE),没有 javac。
现象
javac: command not found
解决
java -version
which javac
安装 JDK:
yum install -y java-1.8.0-openjdk-devel
# 或
yum install -y java-11-openjdk-devel
很多编译脚本依赖 JAVA_HOME。
检查
echo $JAVA_HOME
配置示例(JDK 8)
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
写入:
vi ~/.bashrc
CentOS 7 默认可能是 Java 8,但你代码是 Java 11+。
报错示例
unsupported class file major version
解决
查看版本:
javac -version
public class Hello {}
但文件叫 hello.java ❌
✅ 必须:
Hello.java
❌ 错误:
java Hello.java
✅ 正确:
javac Hello.java
java Hello
CentOS 默认可能是 UTF-8 或 GBK 不一致。
报错类似
编码 GBK 的不可映射字符
解决
javac -encoding UTF-8 Hello.java
javac Main.java
但用到第三方库 ❌
✅ 正确:
javac -cp lib/*.jar Main.java
如果你是:
mvn compile
常见原因:
可以贴 具体报错
你可以直接把 报错信息原样贴出来,我可以精准判断。
例如:
javac: invalid flag: -release
error: package org.springframework does not exist
你可以告诉我:
java -version)我可以直接告诉你 是哪一步错了、怎么改。