在 CentOS 上编译 Java(通常是 OpenJDK),一般有两种常见场景:
✅ 编译 OpenJDK 源码
✅ 编译 Java 程序(.java → .class)
下面分别说明。
# CentOS 7
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
# CentOS 8 / Stream
dnf install -y java-17-openjdk java-17-openjdk-devel
验证:
java -version
javac -version
vim Hello.java
public class Hello {
public static void main(String[] args) {
System.out.println("Hello CentOS");
}
}
javac Hello.java
生成:
Hello.class
java Hello
适合想 自己编译 JDK 的情况。
yum groupinstall -y "Development Tools"
yum install -y \
autoconf \
libXtst-devel \
libXt-devel \
libXrender-devel \
cups-devel \
freetype-devel \
alsa-lib-devel \
fontconfig-devel
例如编译 JDK 17,需要 JDK 16+:
yum install -y java-16-openjdk
git clone https://github.com/openjdk/jdk.git
cd jdk
bash configure
常见参数:
bash configure --with-boot-jdk=/usr/lib/jvm/java-16-openjdk
make images
编译完成后:
./build/*/images/jdk/bin/java -version
javac: command not found➡ 没装 devel 包
yum install -y java-1.8.0-openjdk-devel
export MAKEFLAGS="-j1"
| 需求 | 推荐方式 |
|---|---|
| 写 Java 程序 | javac |
| 学习 JVM | 编译 OpenJDK |
| 生产环境 | 直接用 yum/dnf 安装 |
如果你能告诉我:
✅ CentOS 版本
✅ 想编译 JDK 还是 Java 程序
✅ OpenJDK 几版本
我可以给你 精确到命令级别 的方案。