在 **CentOS 上编译 Java(通常指编译 OpenJDK 或自己的 Java 项目)**是完全可行的,不过要看你具体想做哪一类“编译”。下面分情况说明,并给出实用建议。
完全可行,OpenJDK 官方就支持在 CentOS / RHEL 上编译。
⚠️ CentOS 6 已过时,不建议用于编译新版 JDK
sudo yum groupinstall "Development Tools"
sudo yum install \
autoconf automake libtool \
cups-devel libX11-devel libXext-devel \
libXrender-devel libXtst-devel libXt-devel \
freetype-devel fontconfig-devel \
alsa-lib-devel
不同 JDK 版本依赖略有差异
编译 JDK 需要一个 已存在的 JDK(叫 boot JDK):
| 要编译的版本 | boot JDK |
|---|---|
| JDK 8 | JDK 7 |
| JDK 11 | JDK 10 / 11 |
| JDK 17 | JDK 16 / 17 |
java -version
git clone https://github.com/openjdk/jdk.git
cd jdk
或指定版本:
git checkout jdk-17+35
bash configure
常见参数:
bash configure \
--with-boot-jdk=/usr/lib/jvm/java-17 \
--with-debug-level=fastdebug
make images
成品在:
build/linux-x86_64-server-release/images/jdk
如果你只是想 编译 Java 程序,那非常简单。
sudo yum install java-17-openjdk-devel
mvn clean package
./gradlew build
✅ 这是最常见、最推荐的方式
| 你的目的 | 建议 |
|---|---|
| 学习 JVM / 改 JDK | ✅ CentOS + 编译 OpenJDK |
| 普通 Java 开发 | ✅ 直接用 yum 装 JDK |
| 生产环境 | ✅ CentOS + 官方 OpenJDK |
| 新手 | ❌ 不建议直接编译 JDK |
如果你愿意,可以告诉我:
我可以直接给你 一步一步可复制的命令。