在 Debian 系统中切换 Java 版本,常用而且推荐的方法是使用 update-alternatives。下面按常见场景一步步说明。
update-alternatives --list java
如果输出类似:
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
/usr/lib/jvm/java-17-openjdk-amd64/bin/java
说明系统中已安装多个 Java 版本。
javasudo update-alternatives --config java
示例输出:
There are 2 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-11-openjdk-amd64/bin/java 1111 manual mode
2 /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,没切javac,导致版本不一致。
java -version
javac -version
update-alternatives --config java
假设选择的是:
/usr/lib/jvm/java-17-openjdk-amd64/bin/java
则 JAVA_HOME 应为:
/usr/lib/jvm/java-17-openjdk-amd64
编辑 ~/.bashrc 或 /etc/profile:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
使配置生效:
source ~/.bashrc
验证:
echo $JAVA_HOME
systemd-aware 方式如果你用的是 Debian 12 (Bookworm),还可以用:
sudo dpkg-reconfigure ca-certificates
⚠️ 这个和 Java 版本无关,只是提醒你 Debian 工具链在变化。
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
只对当前 shell 会话有效。
update-alternatives --list java 输出说明没安装 JDK/JRE,可安装:
sudo apt install openjdk-11-jdk
sudo apt install openjdk-17-jdk
如果你愿意,可以告诉我:
我可以给你更精确的方案 ✅