温馨提示×

CentOS编译Java报错如何排查

小樊
49
2026-08-04 18:12:36
栏目: 编程语言

CentOS 上编译 Java(javac / Maven / Gradle)报错 时,排查思路可以按下面顺序来,基本能定位 90% 的问题。


一、先确认基础环境

1️⃣ 是否安装了 Java

java -version
javac -version

✅ 正常示例:

java version "1.8.0_382"
javac 1.8.0_382

❌ 常见问题:

  • 只有 java,没有 javac只装了 JRE,没装 JDK
  • command not found → Java 没装或没配置环境变量

2️⃣ CentOS 常见 Java 安装方式

# 查看已安装
rpm -qa | grep java

安装 JDK(推荐)

# JDK 8
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

⚠️ 一定要装 devel,否则没有 javac


二、环境变量问题(最常见)

1️⃣ 检查 JAVA_HOME

echo $JAVA_HOME

✅ 建议设置:

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

写入:

vi ~/.bashrc
source ~/.bashrc

三、Maven / Gradle 编译报错排查

1️⃣ Maven 报错

mvn -version

常见错误:

  • JAVA_HOME is not set
  • Unsupported major.minor version

✅ 解决:

  • JDK 版本不匹配
  • Maven 使用的 JDK 和项目要求不一致

2️⃣ 查看完整错误(非常关键)

mvn clean compile -e -X

重点看:

  • Caused by
  • java.lang
  • UnsupportedClassVersionError

四、Java 版本不兼容(非常常见)

错误示例

Unsupported major.minor version 52.0

含义对照表:

版本号 Java
52 Java 8
53 Java 9
55 Java 11
61 Java 17

✅ 解决:

  • 项目用 Java 8 → 用 JDK 8 编译
  • 项目用 Java 11 → 用 JDK 11

五、权限问题

1️⃣ 目录无写权限

ls -ld 项目目录

✅ 解决:

chmod -R 755 项目目录

六、依赖或网络问题(Maven)

1️⃣ 依赖下载失败

Could not transfer artifact

✅ 解决:

rm -rf ~/.m2/repository
mvn clean package

或者换国内镜像:

<mirror>
  <id>aliyun</id>
  <mirrorOf>central</mirrorOf>
  <url>https://maven.aliyun.com/repository/public</url>
</mirror>

七、常见 CentOS 特有坑

1️⃣ 防火墙 / 代理

echo $http_proxy

2️⃣ glibc / 系统太老

ldd --version

CentOS 6 已停止支持,建议:

  • ✅ CentOS 7
  • ✅ Rocky / AlmaLinux

八、快速排查清单(照着做)

java -version
javac -version
echo $JAVA_HOME
mvn -version
mvn clean compile -e -X

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

你可以直接贴出:

  1. 完整报错信息
  2. 使用的 CentOS 版本
  3. Java / Maven 版本
  4. javacmvn 还是 gradle 报错

我可以一步一步帮你定位 ✅

0