Ubuntu 上 Java 兼容性问题很常见,通常分为 版本不兼容、环境变量不对、应用依赖冲突、架构/库缺失 这几类。我按「常见场景 + 解决办法」给你梳理一下:
先执行几个命令看现状:
java -version
javac -version
which java
update-alternatives --list java
重点看:
现象
UnsupportedClassVersionError解决 安装并切换 Java 8:
sudo apt install openjdk-8-jdk
sudo update-alternatives --config java
选 Java 8 即可。
如果是 只给某个程序用 Java 8:
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
现象
java 和 javac 版本不一致解决
统一用 update-alternatives:
sudo update-alternatives --config java
sudo update-alternatives --config javac
Maven 项目可强制:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
OpenJDK 有时不兼容商业软件。
解决
export JAVA_HOME=/opt/jdk-17.0.2
export PATH=$JAVA_HOME/bin:$PATH
现象
Package openjdk-8-jdk has no installation candidate
解决
sudo apt update
sudo apt install openjdk-8-jdk-headless
或从 Adoptium 手动装。
现象
libxxx.so not found解决 常见补库:
sudo apt install libxrender1 libxtst6 libxi6
sudo apt install fonts-wqy-zenhei
java -version 正确JAVA_HOME 设置对你可以直接贴:
lsb_release -a)我可以直接告诉你 该装哪个 JDK、怎么配、哪一行错。