在 CentOS 上遇到 Java 编译兼容性问题,通常可以归结为 JDK 版本不一致、目标运行环境不同、或系统库差异。下面按常见场景给你一套排查 + 解决思路。
现象
UnsupportedClassVersionError原因
java 可能是 OpenJDK 老版本解决
java -version
javac -version
✅ 明确指定版本(推荐):
yum install java-1.8.0-openjdk-devel
使用:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
问题
解决(Maven 示例)
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.target>
</properties>
或 Gradle:
sourceCompatibility = 1.8
targetCompatibility = 1.8
CentOS 默认是 OpenJDK,有些情况会出问题:
解决
rpm -ivh jdk-8uXXX-linux-x64.rpm
现象
java.lang.UnsatisfiedLinkError原因
解决
现象
解决
mvn clean package -DskipTests
确认:
mvn -v
FROM centos:7
RUN yum install -y java-1.8.0-openjdk-devel maven
COPY . /app
WORKDIR /app
RUN mvn package
✅ 编译 & 运行环境完全一致
java -version / javac -version 一致你可以直接贴:
我可以精准定位到哪一行配置或命令有问题。