首先需要通过系统包管理器或手动方式安装需要切换的Java版本。
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管理版本(系统级切换)update-alternatives是Debian自带的多版本管理工具,可方便地切换系统默认Java版本。
sudo update-alternatives --list java
若未显示所有版本,需先手动注册:sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/bin/java 100
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk-amd64/bin/java 200
(数字100、200表示优先级,数值越大优先级越高)sudo update-alternatives --config java
示例输出:There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 200 auto mode
1 /usr/lib/jvm/java-8-openjdk-amd64/bin/java 100 manual mode
2 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 200 manual mode
输入1或2即可切换。sudo update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/bin/java
若需为当前用户单独设置Java版本,可修改环境变量JAVA_HOME和PATH。
~/.bashrc为例):nano ~/.bashrc
在文件末尾添加(以OpenJDK 8为例):export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
source ~/.bashrc
JAVA_HOME:echo $JAVA_HOME
无论使用哪种方式,切换后均需通过以下命令确认当前Java版本:
java -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/java-8-openjdk-amd64
jenv add /usr/lib/jvm/java-11-openjdk-amd64
jenv global 1.8 # 全局切换至Java 8
jenv local 11 # 当前目录使用Java 11(创建`.java-version`文件)
通过以上步骤,可在Debian系统中灵活切换Java版本,满足不同项目的需求。