发布于2026-06-29 阅读(0)
扫一扫,手机访问
在Debian这类Linux发行版上,同时维护多个Ja va版本几乎是开发运维中的家常便饭——老项目可能死守着JDK 8,新应用又要求JDK 11甚至17。怎么让它们和平共处、随时按需切换?下面这套操作流程,基本覆盖了从系统级到用户级的常见方案,可以直接照着来。
首先,得先把需要切换的Ja va版本装进系统里。有两种主流途径:

sudo apt update
sudo apt install openjdk-8-jdk # 安装OpenJDK 8
sudo apt install openjdk-11-jdk # 安装OpenJDK 11
sudo apt install openjdk-17-jdk # 安装OpenJDK 17(可选)
jdk-11.0.xx-linux-x64.tar.gz),然后解压到/usr/lib/jvm目录:sudo tar -zxvf jdk-11.0.xx-linux-x64.tar.gz -C /usr/lib/jvm
update-alternatives管理版本(系统级切换)Debian自带的好东西——update-alternatives,专治各种多版本混乱。它能直接控制系统默认的ja va命令指向哪个版本。
sudo update-alternatives --list ja va
如果命令没列出所有版本,说明它们还没注册进alternatives系统,需要手动加一下:sudo update-alternatives --install /usr/bin/ja va ja va /usr/lib/jvm/ja va-8-openjdk-amd64/bin/ja va 100
sudo update-alternatives --install /usr/bin/ja va ja va /usr/lib/jvm/ja va-11-openjdk-amd64/bin/ja va 200
(数字100、200是优先级,越大越优先)sudo update-alternatives --config ja va
示例输出长这样:There are 2 choices for the alternative ja va (providing /usr/bin/ja va).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/ja va-11-openjdk-amd64/bin/ja va 200 auto mode
1 /usr/lib/jvm/ja va-8-openjdk-amd64/bin/ja va 100 manual mode
2 /usr/lib/jvm/ja va-11-openjdk-amd64/bin/ja va 200 manual mode
输入1就切到JDK 8,输入2就切回JDK 11。sudo update-alternatives --set ja va /usr/lib/jvm/ja va-8-openjdk-amd64/bin/ja va
如果只想为当前用户单独设置某个Ja va版本,不需要动系统全局,那就改环境变量。
~/.bashrc(也可以改~/.profile或~/.zshrc,看你用的哪个shell):nano ~/.bashrc
在末尾追加(以OpenJDK 8为例):export JA VA_HOME=/usr/lib/jvm/ja va-8-openjdk-amd64
export PATH=$JA VA_HOME/bin:$PATH
source ~/.bashrc
JA VA_HOME是否设置成功:echo $JA VA_HOME
无论用哪种方式换完版本,都别忘了跑一下这个命令确认:
ja va -version
切到OpenJDK 8后,输出应该是这样的:
openjdk version "1.8.0_392"
OpenJDK Runtime Environment (build 1.8.0_392-8u392-b13-1~deb12u1)
OpenJDK 64-Bit Server VM (build 25.392-b13, mixed mode)
如果觉得系统级切换和手动配环境变量还是不够灵活(比如想针对不同项目自动切换),可以试试jenv——思路跟Node.js的nvm类似。
wget https://github.com/jenv/jenv/releases/download/1.2.0/jenv-1.2.0.tar.gz
tar xzf jenv-1.2.0.tar.gz
sudo mv jenv-1.2.0 /usr/local/bin
~/.bashrc,添加:echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(jenv init -)"' >> ~/.bashrc
source ~/.bashrc
jenv add /usr/lib/jvm/ja va-8-openjdk-amd64
jenv add /usr/lib/jvm/ja va-11-openjdk-amd64
jenv global 1.8 # 全局切到Ja va 8
jenv local 11 # 当前目录用Ja va 11(会生成一个`.ja va-version`文件,进目录自动生效)
通过上面这些步骤,不管是要系统全局统一版本,还是想在单个项目里做精细化控制,Debian都能轻松搞定。
下一篇:Debian系统Java如何更新
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8