在 Debian 系统里切换 Java 版本,通常用 update-alternatives 来管理。下面按常见场景一步步说清楚。
update-alternatives --list java
如果已经安装多个 Java,会看到类似:
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
/usr/lib/jvm/java-17-openjdk-amd64/bin/java
/usr/lib/jvm/java-8-openjdk-amd64/bin/java
如果列表为空,说明还没注册或没安装。
sudo apt update
sudo apt install openjdk-8-jdk
sudo apt install openjdk-11-jdk
sudo apt install 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(很重要)只切换 java 不够,编译版本也要一起切:
sudo update-alternatives --config javac
java -version
javac -version
update-alternatives --list java
一般路径是:
/usr/lib/jvm/java-11-openjdk-amd64
编辑:
sudo nano /etc/environment
添加或修改(示例):
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
生效:
source /etc/environment
或重新登录。
nano ~/.bashrc
添加:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
生效:
source ~/.bashrc
javac 是否一起切换$PATH 里是否有其他 Java(如 snap、手动安装)which java
update-alternatives 选项?可能是:
这种情况只能手动设 JAVA_HOME 和 PATH。
sudo update-alternatives --config java
sudo update-alternatives --config javac
java -version
如果你愿意,可以告诉我:
我可以给你更精确的配置方案。