在 Ubuntu 下遇到 Java 兼容性问题,一般集中在 JDK 版本不匹配、依赖库缺失、架构不兼容、环境变量错误 这几类。下面按常见场景给你一套“排查 + 解决”思路。
java -version
javac -version
which java
update-alternatives --list java
常见现象:
java 和 javac 版本不一致Ubuntu 支持同时装多个 JDK:
sudo apt install openjdk-8-jdk openjdk-11-jdk openjdk-17-jdk
切换默认版本:
sudo update-alternatives --config java
sudo update-alternatives --config javac
✅ 推荐做法:项目级指定 JDK
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
org.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64
有些国产软件、老旧系统:
解决:
/optexport JAVA_HOME=/opt/jdk1.8.0_xxx
export PATH=$JAVA_HOME/bin:$PATH
如果你在:
报错类似:
UnsupportedClassVersionError
解决:
uname -m
x86_64 → 装 amd64 JDKaarch64 → 装 arm64 JDK中文乱码、Swing 界面崩:
sudo apt install fonts-wqy-zenhei
sudo apt install libxext6 libxrender1 libxtst6
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
class file version 61.0 -> Java 17
说明:你用 Java 8 跑 Java 17 编出来的 class
✅ 解决:统一 JDK 版本
java -version 和项目要求一致JAVA_HOME 设置正确如果你能贴出:
我可以直接帮你精准定位是哪一类兼容问题。