温馨提示×

CentOS编译Java支持哪些版本

小樊
33
2026-08-04 18:18:31
栏目: 编程语言

CentOS 上“编译 Java”通常指 编译 OpenJDK 源码,而不是写 Java 程序。不同 CentOS 版本能编译的 JDK 版本受 gcc、glibc、make、boot JDK 等影响。下面按 CentOS 版本 + JDK 版本给你一个实用对照说明。


一、CentOS 7

✅ 可编译的 Java 版本

JDK 版本 状态 说明
JDK 8 ✅ 原生支持 CentOS 7 官方主力
JDK 11 ✅ 支持 需要 devtoolset
JDK 17 ⚠️ 困难 gcc / glibc 版本偏低
JDK 21 ❌ 基本不可行 glibc 2.17 太低

推荐环境

yum install -y java-1.8.0-openjdk-devel
yum install -y gcc-c++ make

如需 JDK 11:

yum install -y devtoolset-11
scl enable devtoolset-11 bash

二、CentOS 8 / Stream 8

✅ 可编译的 Java 版本

JDK 版本 状态
JDK 8
JDK 11 ✅ 原生
JDK 17 ✅ 推荐
JDK 21 ⚠️ 可行

推荐环境

dnf install -y java-11-openjdk-devel
dnf install -y gcc-c++ make

三、CentOS Stream 9

✅ 可编译的 Java 版本

JDK 版本 状态
JDK 11
JDK 17 ✅ 原生
JDK 21 ✅ 推荐
JDK 22+

推荐环境

dnf install -y java-17-openjdk-devel
dnf install -y gcc-c++ make

四、编译 OpenJDK 的通用规则(非常重要)

1️⃣ Boot JDK 规则

编译 JDK N,必须使用 JDK N-1

编译目标 Boot JDK
JDK 8 JDK 7
JDK 11 JDK 10 / 11
JDK 17 JDK 16 / 17
JDK 21 JDK 20 / 21

2️⃣ 编译示例(JDK 17)

./configure --with-boot-jdk=/usr/lib/jvm/java-17-openjdk
make images

五、CentOS 上“运行 Java”和“编译 Java”的区别

场景 说明
运行 Java 任意版本
编译 Java 程序 只要 JDK 支持
编译 OpenJDK 受系统工具链限制

六、总结建议

稳定组合推荐

  • 老系统:CentOS 7 + JDK 8 / 11
  • 新系统:CentOS Stream 9 + JDK 17 / 21

不推荐

  • CentOS 7 编译 JDK 21
  • glibc < 2.28 编译新 JDK

如果你愿意,可以告诉我:

  • ✅ 你的 CentOS 具体版本
  • ✅ 想 编译哪个 JDK
  • ✅ 是 OpenJDK 还是 Oracle JDK

我可以给你 精确的编译步骤和依赖清单

0