在 CentOS 上编译 Java(通常指 OpenJDK 或自定义 JDK)需要准备 编译环境、依赖库和引导 JDK。下面按 常见场景 给你一个完整说明。
下面重点讲 编译 OpenJDK,这是最复杂、最典型的情况。
sudo yum groupinstall -y "Development Tools"
或(CentOS 8 / Stream):
sudo dnf groupinstall -y "Development Tools"
包含:
sudo yum install -y \
unzip zip \
libXtst-devel libXt-devel libXrender-devel \
libXrandr-devel libXi-devel \
freetype-devel \
cups-devel \
alsa-lib-devel \
fontconfig-devel \
libffi-devel \
wget \
java-1.8.0-openjdk-devel
sudo dnf install -y \
unzip zip \
libXtst-devel libXt-devel libXrender-devel \
libXrandr-devel libXi-devel \
freetype-devel \
cups-devel \
alsa-lib-devel \
fontconfig-devel \
libffi-devel \
wget \
java-1.8.0-openjdk-devel
✅ 编译 JDK N 需要已安装 JDK N-1
| 编译目标 | 引导 JDK |
|---|---|
| OpenJDK 8 | JDK 7 |
| OpenJDK 11 | JDK 10 / 11 |
| OpenJDK 17 | JDK 16 / 17 |
| OpenJDK 21 | JDK 20 / 21 |
✅ 最常用组合(推荐)
java-1.8.0-openjdk-devel # 编译 OpenJDK 8/11
java-17-openjdk-devel # 编译 OpenJDK 17
检查:
java -version
javac -version
git clone https://github.com/openjdk/jdk11u.git
cd jdk11u
bash configure \
--with-boot-jdk=/usr/lib/jvm/java-1.8.0 \
--with-debug-level=release
常见参数:
--with-boot-jdk
--with-debug-level=release | fastdebug | slowdebug
--disable-warnings-as-errors
make images
完成后:
cd build/linux-x86_64-normal-server-release/images/jdk
./bin/java -version
只需要:
sudo yum install -y java-1.8.0-openjdk-devel
编译:
javac HelloWorld.java
java HelloWorld
Boot JDK not found✅ 解决:
sudo yum install java-1.8.0-openjdk-devel
gcc: error: unrecognized command line option✅ 原因:GCC 版本过低
✅ OpenJDK 17+ 建议 GCC ≥ 7
export MAKEFLAGS="-j1"
| 需求 | 环境 |
|---|---|
| 编译 OpenJDK | 开发工具 + 依赖库 + 引导 JDK |
| 编译 Java 程序 | JDK |
| 编译 JNI | JDK + gcc + C 头文件 |
如果你愿意,可以告诉我:
我可以给你 精确到命令级别 的编译方案。