在 Ubuntu 上切换 Java 版本,常用且推荐的方法是使用 update-alternatives。下面按常见场景一步步说明。
update-alternatives --list java
如果还没安装 Java,可以先安装:
sudo apt update
sudo apt install openjdk-8-jdk openjdk-11-jdk openjdk-17-jdk
java 命令sudo update-alternatives --config java
输出示例:
There are 3 choices for the alternative java (providing /usr/bin/java):
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 auto mode
1 /usr/lib/jvm/java-8-openjdk-amd64/bin/java 1081 manual mode
2 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
3 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 manual mode
Press <enter> to keep the current choice[*], or type selection number:
输入对应数字即可。
javac(编译器)sudo update-alternatives --config javac
⚠️ 建议 java 和 javac 版本保持一致,否则容易出问题。
java -version
javac -version
JAVA_HOME 切换(推荐用于开发)update-alternatives --list java
例如:
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
则 JAVA_HOME 为:
/usr/lib/jvm/java-11-openjdk-amd64
JAVA_HOME编辑环境变量文件(选一个):
nano ~/.bashrc
添加:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
生效:
source ~/.bashrc
验证:
echo $JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
关闭终端后失效。
java 和 javacPATH 是否包含其他 Java(如手动安装的 Oracle JDK)which java
sudo update-alternatives --config java
sudo update-alternatives --config javac
如果你用的是 Ubuntu 版本 + 具体 Java 版本(比如 20.04 / 22.04 / 24.04),可以告诉我,我可以给你更精确的命令。