CentOS上Java编译工具链如何搭建
小樊
39
2025-12-17 18:45:07
在 CentOS 上搭建 Java 编译工具链
一 准备与安装 JDK
- 更新系统并安装编译所需 JDK(选择 OpenJDK 8 或 OpenJDK 11 的 devel 包,devel 才包含编译器 javac):
- 安装 OpenJDK 8:sudo yum install -y java-1.8.0-openjdk-devel
- 安装 OpenJDK 11:sudo yum install -y java-11-openjdk-devel
- 验证安装结果(需同时看到 java 与 javac 版本):java -version、javac -version
- 注意:仅安装 java-1.8.0-openjdk(无 -devel)会导致 Maven/Gradle 编译时报 “No compiler is provided in this environment” 错误,务必安装带 -devel 的包。
二 配置环境变量与多版本管理
- 推荐在 /etc/profile.d/ 下创建脚本统一管理(系统级、对登录会话生效):
- 新建:sudo tee /etc/profile.d/java.sh <<‘EOF’
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$JAVA_HOME/bin:$PATH
EOF
- 使生效:source /etc/profile.d/java.sh
- 如需使用 Oracle JDK,可手动解压至 /opt 并设置 JAVA_HOME 指向该目录;或在 /etc/profile.d/java.sh 中改为你的实际路径。
- 多版本 JDK 切换(alternatives 方式):
- 查看/切换:sudo alternatives --config java
- 按提示选择默认 java,随后重新登录或 source 使 JAVA_HOME 与实际 java 保持一致。
三 安装构建工具 Maven 与 Gradle
- Maven(YUM 安装,简单稳定):
- 安装:sudo yum install -y maven
- 验证:mvn -version(应显示 Maven 与 Java 版本)
- Gradle(两种常用方式):
- YUM 安装:sudo yum install -y gradle(版本可能较旧,适合稳定环境)
- 手动安装(获取最新版):
- 下载并解压:wget https://services.gradle.org/distributions/gradle-7.4-bin.zip -O /tmp/gradle.zip && sudo unzip /tmp/gradle.zip -d /opt/
- 配置环境:sudo tee /etc/profile.d/gradle.sh <<‘EOF’
export GRADLE_HOME=/opt/gradle-7.4
export PATH=$GRADLE_HOME/bin:$PATH
EOF
- 使生效并验证:source /etc/profile.d/gradle.sh && gradle -v。
四 快速验证与常见问题
- 一键验证工具链:
- java -version
- javac -version
- mvn -version
- gradle -v(若已安装)
- 常见问题与处理:
- 编译时报 “No compiler is provided in this environment”:未安装 -devel 包,改用 java-1.8.0-openjdk-devel 或 java-11-openjdk-devel。
- which java 与 JAVA_HOME 不一致:使用 alternatives 统一默认 java,并更新 /etc/profile.d/java.sh 中的 JAVA_HOME 为 alternatives 选中的实际路径。
- 多用户/多版本并存:优先使用 /etc/profile.d/ 脚本设置 JAVA_HOME,避免仅修改局部 rc 文件导致不一致。
五 可选 从源码构建 OpenJDK(进阶)
- 适用场景:需要调试/定制 JDK 源码。以在 CentOS 7 构建 OpenJDK 12 为例:
- 安装编译依赖:sudo yum -y install gcc gcc-c++ kernel-devel freetype-devel cups-devel libXtst-devel libXt-devel libXrender-devel libXrandr-devel libXi-devel alsa-lib-devel libffi-devel autoconf
- 准备引导 JDK(boot JDK):sudo yum install java-11-openjdk-devel(构建 JDK N 通常需要 N-1 的 boot JDK)
- 获取源码并配置构建:bash configure --enable-debug --with-debug-level=fastdebug(可按需添加其他选项)
- 编译:make images(或 make)
- 说明:不同 JDK 版本对 GCC、依赖库与 boot JDK 的要求不同,具体以对应版本官方文档为准。