温馨提示×

CentOS编译Java报错怎么解决

小樊
59
2026-07-21 02:03:19
栏目: 编程语言

CentOS 下编译 Java 程序时常见报错很多,但大多数都和 JDK 环境、路径、版本不一致有关。下面我按最常见场景 → 原因 → 解决方法给你一个排查清单,你可以对照看看属于哪一种。


一、最常见:找不到 javac(不是 JRE 的问题)

报错示例

-bash: javac: command not found

原因

  • 只装了 JRE,没装 JDK
  • javac 不在 PATH

解决方法(推荐)

1️⃣ 安装 JDK(CentOS 7/8 通用)

# 查看是否已有 java
java -version

# 查看是否有 javac
javac -version

如果没有 javac

# CentOS 7
yum install -y java-1.8.0-openjdk-devel

# CentOS 8 / Stream
dnf install -y java-1.8.0-openjdk-devel

一定要带 devel(开发包)


二、java 和 javac 版本不一致

报错示例

Unsupported major.minor version 52.0

原因

  • java 是 1.7
  • javac 是 1.8

解决方法

java -version
javac -version

如果不一致,统一版本,例如:

yum install -y java-1.8.0-openjdk-devel

然后确认:

java -version
javac -version

三、环境变量没配置(JAVA_HOME)

报错示例

JAVA_HOME is not set

解决方法(推荐)

编辑:

vi ~/.bashrc

加入(示例路径):

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH

生效:

source ~/.bashrc

四、编译时报 “编码 GBK 的不可映射字符”

报错示例

错误: 编码 GBK 的不可映射字符

原因

  • CentOS 默认 UTF-8
  • Java 文件是 GBK

解决方法

javac -encoding UTF-8 Hello.java

或转换文件编码:

iconv -f gbk -t utf-8 Hello.java -o Hello.java

五、内存不足(少见但会踩)

报错示例

Java heap space

解决方法

export JAVA_OPTS="-Xms256m -Xmx512m"

六、CentOS 7 已停止维护(yum 报错)

报错示例

Cannot find a valid baseurl

解决方法

sed -i 's|mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-*.repo
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*.repo
yum clean all
yum makecache

七、一个完整示例(推荐流程)

# 1. 安装 JDK
yum install -y java-1.8.0-openjdk-devel

# 2. 验证
java -version
javac -version

# 3. 编译
javac Hello.java

# 4. 运行
java Hello

八、如果你愿意,我可以精准定位

你可以直接贴出:

  1. 完整报错信息
  2. java -version
  3. javac -version
  4. CentOS 版本(cat /etc/centos-release

我可以一步一步帮你解决 ✅

0