在 CentOS 上“编译 Java”通常有两种理解,我分开说,方便你对号入座:
java -version
javac -version
# OpenJDK 8
yum install java-1.8.0-openjdk-devel
# OpenJDK 11
yum install java-11-openjdk-devel
# OpenJDK 17(CentOS 8+)
yum install java-17-openjdk-devel
从 Oracle / Adoptium / Azul 下载:
tar -xzf jdk-17_linux-x64_bin.tar.gz -C /usr/local/
配置环境变量:
export JAVA_HOME=/usr/local/jdk-17
export PATH=$JAVA_HOME/bin:$PATH
alternatives --config java
alternatives --config javac
或者直接用:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$JAVA_HOME/bin:$PATH
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
或:
mvn clean package -Dmaven.compiler.release=11
javac -source 11 -target 11 App.java
那就不是“选 Java 版本”这么简单了,而是:
| 要编译的 JDK | 需要的 Boot JDK |
|---|---|
| JDK 8 | JDK 7 |
| JDK 11 | JDK 10/11 |
| JDK 17 | JDK 16/17 |
| JDK 21 | JDK 20/21 |
# 安装依赖
yum groupinstall "Development Tools"
yum install libXtst-devel libXrender-devel cups-devel fontconfig-devel
# 配置
bash configure --with-boot-jdk=/usr/lib/jvm/java-17
# 编译
make images
| 场景 | 推荐 |
|---|---|
| 老系统 / 传统企业 | Java 8 |
| 新项目 / 微服务 | Java 11 / 17 |
| 云原生 / 长期支持 | Java 17(LTS) |
| 学习 / 实验 | Java 21 |
如果你能补充一下:
我可以直接给你一套可复制的命令。