在 CentOS 旧版本 上“顺利编译 Java(或 Java 项目)”通常会遇到 JDK 太旧 / 系统缺少依赖 / 工具链不兼容 等问题。下面按场景给你一套可行方案,基本能覆盖 90% 的情况。
请先分清:
不同场景做法差别很大。
旧 CentOS(如 6 / 7)自带 OpenJDK 往往太旧。
yum install -y java-1.8.0-openjdk-devel
或 Oracle JDK(手动):
rpm -ivh jdk-8uXXX-linux-x64.rpm
查看:
java -version
javac -version
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
建议写入:
/etc/profile.d/java.sh
yum install -y maven
mvn clean package
如 Maven 太旧:
wget https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
Unsupported major.minor version removals of javax.xml.bind✅ 用项目当时对应的 JDK 编译(最稳妥)
例如:
不要试图用 JDK 11 编 Java 6 老项目。
yum groupinstall -y "Development Tools"
yum install -y \
cups-devel \
libXtst-devel \
libXrender-devel \
libXrandr-devel \
alsa-lib-devel \
freetype-devel \
fontconfig-devel
编译 JDK N,需要 JDK N-1
例如:
export BOOT_JDK=/usr/lib/jvm/java-1.7.0-openjdk
bash configure
make
docker run -it centos:6 bash
或
docker run -it maven:3.6-jdk-8 bash
老 CentOS 已 EOL,编译环境不稳定。
| 问题 | 原因 | 解决 |
|---|---|---|
javac: command not found |
没装 devel | 装 *-devel |
Permission denied |
权限问题 | sudo 或 chmod |
Unsupported class version |
JDK 不匹配 | 换 JDK |
Could not resolve dependencies |
源失效 | 换 Maven 镜像 |
为了给你精确步骤,你可以说:
我可以直接给你可复制的命令。