jdk17

使用jdk17下载直接使用命令

sudo apt install openjdk-17-jdk -y

可以看到jdk下载到的目录 /usr/lib/jvm/java-17-openjdk-amd64/bin/jconsole

image-20260524205444118
image-20260524205444118

我们进入到jdk目录 执行 java -version 查看版本验证 安装成功

Jdk21

apt 里找不到 JDK 21 的包,核心原因是 Debian 系统追求极致的稳定性,它的官方软件源会滞后于最新的软件版本

简单来说,就是 Debian 12 (Bookworm) 为了保证服务器长时间稳定运行,默认只提供了经过长时间测试的 OpenJDK 17。而你想要的 JDK 21 虽然已经发布,但正式引入 Debian 的稳定版仓库还需要一个过程,直接 apt install 当然会提示“找不到包”

所以只能自己手动来安装 JDK 21

使用以下命令从官方下载 tar 包并解压

# 下载
wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz
# 解压到 /usr/local/
sudo tar -xzf jdk-21_linux-x64_bin.tar.gz -C /usr/local/
# 重命名文件夹
sudo mv /usr/local/jdk-21.* /usr/local/jdk-21
image-20260524210506313
image-20260524210506313

进入下载到目录 cd /usr/local 查看 java -version

image-20260524210758118
image-20260524210758118

配置环境变量

root@RainYun-yW2VbpLv:/usr/local# echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' >> ~/.bashrc
root@RainYun-yW2VbpLv:/usr/local# echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
root@RainYun-yW2VbpLv:/usr/local# 
root@RainYun-yW2VbpLv:/usr/local# # 立即生效
root@RainYun-yW2VbpLv:/usr/local# source ~/.bashrc

验证

image-20260524211241512
image-20260524211241512

切换 JDK

这里为了方便 我更换了jdk的名字

image-20260524211509148
image-20260524211509148

先用 update-alternatives 注册 JDK 21

bash
# 注册 java 命令
sudo update-alternatives --install /usr/bin/java java /usr/local/jdk21/bin/java 2100

# 注册 javac 命令(如果之前没注册)
sudo update-alternatives --install /usr/bin/javac javac /usr/local/jdk21/bin/javac 2100

注意:如果你的 JDK 21 安装在其他路径,把 /usr/local/jdk21 改成你的实际路径

执行命令后 输入数字切换对应版本

sudo update-alternatives --config java

可以看到这里我已经切换成功为17

image-20260524211914267
image-20260524211914267

设置 JAVA_HOME(如果还没设置)

echo 'export JAVA_HOME=/usr/local/jdk21' | sudo tee -a /etc/profile
source /etc/profile

# 验证
echo $JAVA_HOME

如果不知道 JDK 21 安装路径

# 查找 jdk21 目录
sudo find / -name "jdk21" -type d 2>/dev/null

# 或者查找 java 21 的可执行文件
sudo find / -name "java" -path "*/jdk*/bin/java" 2>/dev/null