你问的“CentOS 上 Java 编译兼容性问题”比较宽泛,我分几种常见场景给你说清楚,基本能覆盖 90% 的情况。
这都是官方支持良好的组合。
例如:
yum install java-11-openjdk-devel
source/target)这是最容易出问题的。
javac -source 8 -target 8
⚠️ 但:
会直接报错:
UnsupportedClassVersionError
✅ 正确做法:
javac --release 8
或
<maven.compiler.release>8</maven.compiler.release>
报错类似:
version 'GLIBC_2.17' not found
✅ 建议:
| 工具 | 推荐 JDK |
|---|---|
| Maven 3.6 | JDK 8 |
| Maven 3.9 | JDK 11+ |
| Gradle 7+ | JDK 11+ |
否则可能:
CentOS 默认可能是:
LANG=C
✅ 建议:
export LANG=zh_CN.UTF-8
某些情况下会阻止 Java 写文件:
getenforce
不是编译问题,但部署时常混淆。
| 系统 | JDK | 工具 |
|---|---|---|
| CentOS 7 | JDK 8 / 11 | Maven 3.8 |
| CentOS 8 | JDK 11 / 17 | Maven 3.9 |
| CentOS Stream | JDK 17 | Maven 3.9 |
你可以直接说:
我可以精准定位你这个“兼容性”问题。