可以,Debian 完全支持同时安装多个 Java 版本(JDK/JRE),而且这是很常见的做法。下面给你一个实用、规范的说明。
Debian 通过 update-alternatives 机制来管理多个 Java:
/usr/lib/jvm/)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/
例如:
步骤:
.tar.gz/usr/lib/jvm/:sudo tar -xzf jdk-17_linux-x64_bin.tar.gz -C /usr/lib/jvm/
java -version
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_HOME=/usr/lib/jvm/java-17-openjdk-amd64
$JAVA_HOME/bin/java -jar app.jar
#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
java -jar app.jar
✅ 不影响系统其他程序
update-alternatives --list java
或:
ls /usr/lib/jvm/
不会。
只要你不乱改环境变量,Debian 可以安全共存多个 Java。
取决于:
update-alternatives 的默认选择JAVA_HOMEPATH 顺序| 场景 | 建议 |
|---|---|
| 系统服务 | 明确指定 JAVA_HOME |
| 开发环境 | 用 sdkman |
| 临时测试 | update-alternatives |
| 多个项目 | 每个项目单独指定 Java |
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
✅ 多版本切换非常方便
如果你愿意,可以告诉我:
我可以给你一套最适合你的 Java 安装方案。