温馨提示×

Debian如何设置默认Java

小樊
45
2026-07-02 11:14:20
栏目: 编程语言

在 Debian(及多数基于 Debian 的发行版)中,推荐使用 update-alternatives 来管理并设置默认 Java(JDK / JRE)。


一、确认已安装的 Java

update-alternatives --list java

如果没有输出或报错,说明尚未安装 Java,可先安装(例如 OpenJDK):

sudo apt update
sudo apt install openjdk-17-jdk

或安装 JRE:

sudo apt install openjdk-17-jre

二、设置默认 Java(核心步骤)

1️⃣ 设置默认的 java

sudo update-alternatives --config java

输出示例:

There are 2 choices for the alternative 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:

输入对应编号并回车即可。


2️⃣ 设置默认的 javac(如果你安装了 JDK)

sudo update-alternatives --config javac

⚠️ 注意:如果只安装了 JRE,是没有 javac 的。


三、验证设置是否生效

java -version
javac -version

四、设置 JAVA_HOME(推荐)

Java 应用(如 Maven、Tomcat、Elasticsearch)通常需要 JAVA_HOME

1️⃣ 查看 Java 安装路径

readlink -f $(which java)

通常路径类似于:

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

那么 JAVA_HOME 应为:

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

2️⃣ 永久设置(全局)

编辑:

sudo nano /etc/environment

添加一行(示例):

JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"

保存后使配置生效:

source /etc/environment

3️⃣ 仅对当前用户设置(可选)

nano ~/.bashrc

添加:

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

生效:

source ~/.bashrc

五、常见问题

❓ 为什么 java -version 后还是旧的版本?

  • 可能是 PATH 顺序问题
  • 检查是否手动设置过 JAVA_HOME
  • 确认 update-alternatives 已切换到正确的 Java

❓ Debian 推荐使用哪个 Java?

  • 服务器 / 通用openjdk-17-jdk
  • 老项目openjdk-8-jdk(Debian 12 已移除,需第三方仓库)

六、总结(速查)

# 查看
update-alternatives --list java

# 设置
sudo update-alternatives --config java
sudo update-alternatives --config javac

# 验证
java -version

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

  • Debian 版本(10 / 11 / 12)
  • 是桌面还是服务器
  • 使用的是 OpenJDK 还是 Oracle JDK

我可以给你更精确的配置方案。

0