Debian 使用清华源安装 JDK 21 完整教程

Debian 使用清华源安装 JDK 21 完整教程

在部署 Kafka、Spring Boot、各类 Java 服务时,JDK 是最基础的运行环境。很多人在 Debian 服务器上执行 apt install openjdk-21-jdk 时,会遇到“找不到软件包”的问题,尤其是在 Debian 12 环境中更常见。本文将介绍如何在 Debian 系统 上,通过 清华大学 TUNA 镜像源 安装 Eclipse Temurin JDK 21,并完成环境变量配置、版本验证以及常见问题排查。

一、为什么推荐使用 Temurin JDK 21

Eclipse Adoptium 官方提供了 Temurin 的 Linux 安装仓库,并给出了 Debian/Ubuntu 的标准安装方式;官方包命名规则就是 temurin-<version>-jdk,例如 temurin-21-jdk。清华大学镜像站也提供了 Adoptium 的 Debian 镜像,并给出了 Debian/Ubuntu 的配置示例,因此在国内服务器环境中,这种方式通常比直接访问官方仓库更稳定。

如果你后续是为了部署 Kafka,那么选用 JDK 21 也是合适的。Apache Kafka 官方文档当前明确指出:Java 17、Java 21、Java 25 均为完整支持版本

二、适用环境

本文适用于以下环境:

  • Debian 12 / Debian 13
  • 需要安装 JDK 21 的服务器
  • 希望通过清华大学镜像源提升下载稳定性
  • 用于部署 Kafka、Java Web 服务、微服务应用等场景

如果你使用的是 Debian 12,需要注意:Debian 官方仓库的常规包搜索结果显示,bookworm 主要提供 OpenJDK 17;而 OpenJDK 21 则在 trixie 中可直接找到。正因如此,Debian 12 上更推荐通过 Adoptium 仓库安装 Temurin 21。

三、安装前准备

先确认当前系统版本,避免把仓库写错:

cat /etc/os-release
uname -m

如果输出中包含:

  • VERSION_CODENAME=bookworm,说明你是 Debian 12
  • VERSION_CODENAME=trixie,说明你是 Debian 13

清华大学的 Adoptium 帮助页给出了 Debian/Ubuntu 的镜像仓库写法,其中 Debian 12 的示例就是 bookworm

四、使用清华大学源安装 JDK 21

1. 更新系统并安装依赖

先安装基础工具:

apt update
apt install -y wget apt-transport-https gpg ca-certificates

Adoptium 官方 Debian/Ubuntu 安装说明中要求先安装 wgetapt-transport-httpsgpg。清华大学镜像帮助页也给出了类似步骤。

2. 导入 Adoptium GPG 公钥

执行以下命令:

mkdir -p /usr/share/keyrings
​
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public \
  | gpg --dearmor -o /usr/share/keyrings/adoptium.gpg

Adoptium 官方 Debian 安装方法要求先下载其 GPG key;清华大学镜像帮助页同样要求先信任 Adoptium 的公钥,然后再配置镜像仓库。

3. 写入清华大学 Adoptium 镜像源

执行:

CODENAME="$(awk -F= '/^VERSION_CODENAME/{print $2}' /etc/os-release)"
​
cat > /etc/apt/sources.list.d/adoptium.list <<EOF
deb [signed-by=/usr/share/keyrings/adoptium.gpg] https://mirrors.tuna.tsinghua.edu.cn/Adoptium/deb ${CODENAME} main
EOF

清华大学镜像帮助页给出的 Debian/Ubuntu 仓库格式是:

deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://mirrors.tuna.tsinghua.edu.cn/Adoptium/deb bookworm main

本文这里采用的是同样的镜像地址,但把密钥保存为 gpg keyring 文件,更适合生产环境管理。仓库地址和发行版代号的用法与清华镜像帮助保持一致。

4. 更新索引并安装 JDK 21

执行:

apt update
apt install -y temurin-21-jdk

Adoptium 官方说明里,Temurin 的包名规则为 temurin-<version>-jdk;因此安装 JDK 21 时,对应的包名就是 temurin-21-jdk。虽然清华镜像帮助页示例使用的是 temurin-17-jdk,但那只是示例版本,不影响 21 版本的安装方式。

5. 验证安装结果

安装完成后,执行:

java -version
javac -version
apt-cache policy temurin-21-jdk
readlink -f "$(command -v java)"

如果安装成功,通常可以看到 Java 21 的版本信息,以及当前 java 命令所指向的实际路径。Adoptium 官方文档也建议通过 java -version 进行安装验证。

五、一键安装命令

如果你想直接复制一整段执行,可以使用下面这套命令:

apt update && \
apt install -y wget apt-transport-https gpg ca-certificates && \
mkdir -p /usr/share/keyrings && \
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor -o /usr/share/keyrings/adoptium.gpg && \
CODENAME="$(awk -F= '/^VERSION_CODENAME/{print $2}' /etc/os-release)" && \
echo "deb [signed-by=/usr/share/keyrings/adoptium.gpg] https://mirrors.tuna.tsinghua.edu.cn/Adoptium/deb ${CODENAME} main" > /etc/apt/sources.list.d/adoptium.list && \
apt update && \
apt install -y temurin-21-jdk && \
java -version && javac -version

这套流程基于 Adoptium 官方 Debian 安装方式,并将仓库地址替换为清华大学 TUNA 镜像地址。

六、配置 JAVA_HOME 环境变量

很多 Java 程序虽然只要 java 命令可用就能运行,但在生产环境中,仍然建议显式配置 JAVA_HOME,这样在部署 Kafka、Tomcat、Spring Boot、Jenkins Agent 等服务时更稳妥。

1. 获取 Java 安装目录

JAVA_BIN="$(readlink -f "$(command -v java)")"
JAVA_HOME="$(dirname "$(dirname "$JAVA_BIN")")"
​
echo "$JAVA_BIN"
echo "$JAVA_HOME"

2. 写入系统环境变量

cat > /etc/profile.d/java.sh <<EOF
export JAVA_HOME=$JAVA_HOME
export PATH=\$JAVA_HOME/bin:\$PATH
EOF
​
chmod 644 /etc/profile.d/java.sh
source /etc/profile.d/java.sh

3. 再次验证

echo "$JAVA_HOME"
java -version
javac -version

七、常见问题排查

1. 提示 Unable to locate package temurin-21-jdk

这种情况通常有几个原因:

  • 没有执行 apt update
  • 仓库文件写错了
  • VERSION_CODENAME 获取错误
  • 公钥没有导入成功

排查命令:

cat /etc/apt/sources.list.d/adoptium.list
apt update
apt-cache search temurin
apt-cache policy temurin-21-jdk

2. 提示 GPG 签名错误

可以重新导入公钥:

rm -f /usr/share/keyrings/adoptium.gpg
​
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public \
  | gpg --dearmor -o /usr/share/keyrings/adoptium.gpg
​
apt update

3. java -version 显示的不是 21

说明系统中可能已经安装过其他 Java 版本。可以检查当前 Java 路径:

which java
readlink -f "$(which java)"

如果系统启用了 alternatives,也可以检查:

update-alternatives --list java || true
update-alternatives --list javac || true

4. 为什么不用 SDKMAN 作为生产安装方案

SDKMAN 更适合开发机、多版本切换、测试环境。对于正式生产服务器,使用系统级 APT 仓库安装通常更稳定,也更便于后续维护和自动化管理。Adoptium 官方也推荐通过包管理器安装 Temurin。

八、卸载 JDK 21 的方法

如果后续需要卸载,可以执行:

apt remove -y temurin-21-jdk
apt autoremove -y
rm -f /etc/apt/sources.list.d/adoptium.list
rm -f /usr/share/keyrings/adoptium.gpg
apt update

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容