温馨提示×

Debian能装多个Java吗

小樊
51
2026-07-30 14:42:38
栏目: 编程语言

可以,Debian 完全支持同时安装多个 Java 版本(JDK/JRE),而且这是很常见的做法。下面给你一个实用、规范的说明


一、Debian 中多 Java 并存的原理

Debian 通过 update-alternatives 机制来管理多个 Java:

  • 不同 Java 安装在不同目录(如 /usr/lib/jvm/
  • 系统通过 alternatives 选择 当前默认使用的 Java
  • 多个 Java 可以共存,互不冲突

二、常见安装方式

✅ 方式 1:用 apt 安装(推荐)

Debian 仓库里通常有多个版本:

sudo apt update

查看可用版本:

apt search openjdk

安装示例(同时装多个):

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

它们会并存于:

/usr/lib/jvm/

✅ 方式 2:手动安装 Oracle JDK / 其他 JDK

例如:

  • Oracle JDK
  • Adoptium / Temurin
  • IBM JDK

步骤:

  1. 下载 .tar.gz
  2. 解压到 /usr/lib/jvm/
sudo tar -xzf jdk-17_linux-x64_bin.tar.gz -C /usr/lib/jvm/
  1. 注册到 alternatives(见下文)

三、切换默认 Java(系统级)

查看当前 Java

java -version

切换 Java 版本

sudo update-alternatives --config java

输出示例:

There are 3 choices for the alternative java:

  Selection    Path                                         Priority
------------------------------------------------------------
* 1           /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1111
  2           /usr/lib/jvm/java-17-openjdk-amd64/bin/java   1711
  3           /usr/lib/jvm/java-21-openjdk-amd64/bin/java   2111

输入数字即可切换。

⚠️ 通常还需要切换 javac

sudo update-alternatives --config javac

四、不切换系统 Java,只为某个程序指定 Java(推荐)

这是生产环境最常用方式。

示例 1:临时指定

JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
$JAVA_HOME/bin/java -jar app.jar

示例 2:脚本中指定

#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
java -jar app.jar

不影响系统其他程序


五、查看已安装的所有 Java

update-alternatives --list java

或:

ls /usr/lib/jvm/

六、常见问题

❓ 会不会冲突?

不会。
只要你不乱改环境变量,Debian 可以安全共存多个 Java。

❓ 哪个 Java 才是“真正在用的”?

取决于:

  1. update-alternatives 的默认选择
  2. JAVA_HOME
  3. PATH 顺序

七、建议做法(最佳实践)

场景 建议
系统服务 明确指定 JAVA_HOME
开发环境 用 sdkman
临时测试 update-alternatives
多个项目 每个项目单独指定 Java

八、进阶:用 sdkman(强烈推荐开发者)

curl -s "https://get.sdkman.io" | bash
source ~/.sdkman/bin/sdkman-init.sh

sdk install java 17.0.9-tem
sdk install java 11.0.21-tem
sdk use java 17.0.9-tem

✅ 不影响系统 Java
✅ 多版本切换非常方便


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

  • Debian 版本(11 / 12)
  • 服务器 还是 桌面
  • 用途(运行 Spring / Hadoop / Minecraft / Android)

我可以给你一套最适合你的 Java 安装方案

0