温馨提示×

如何切换Debian的Java

小樊
53
2026-09-01 23:16:41
栏目: 编程语言

在 Debian 系统里“切换 Java”通常是指在多个已安装的 JDK / JRE 之间切换默认 javajavac 等命令版本。Debian 官方推荐用 update-alternatives 机制来管理。

下面按常见场景说明。


一、先查看系统里已安装哪些 Java

update-alternatives --list java

示例输出:

/usr/lib/jvm/java-11-openjdk-amd64/bin/java
/usr/lib/jvm/java-17-openjdk-amd64/bin/java

如果提示 no alternatives for java,说明还没安装或没注册。


二、切换默认 Java(推荐方式)

1️⃣ 交互式切换(最简单)

sudo update-alternatives --config java

会看到类似:

There are 2 choices for the alternative java.

  Selection    Path                                            Priority
* 0            /usr/lib/jvm/java-17-openjdk-amd64/bin/java      1711
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111

输入编号回车即可。


2️⃣ 同时切换 javac(很重要)

很多人只切了 java,编译时还是旧版本:

sudo update-alternatives --config javac

3️⃣ 一次切换所有 Java 相关命令(推荐)

sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config jar

或者更省事(注册整个 JDK):

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1700
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-17-openjdk-amd64/bin/javac 1700

三、验证是否切换成功

java -version
javac -version

四、临时切换(不修改系统默认)

只影响当前 shell:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

适合:

  • 跑某个老项目
  • CI / 脚本环境

五、安装新的 Java(如果还没有)

sudo apt update
sudo apt install openjdk-17-jdk
sudo apt install openjdk-11-jdk

六、常见问题

❓ 切换了但版本没变?

  • 确认使用的是 bash / zsh
  • 检查是否设置了 JAVA_HOME
  • 新开一个终端

❓ 想卸载某个 Java?

sudo apt remove openjdk-11-jdk

如果你愿意,可以告诉我:

  • Debian 版本(如 11 / 12)
  • 想从哪个 Java 切到哪个
  • 系统级 还是 某用户/某项目

我可以给你更精确的命令。

0