windows wsl 安装 Temurin® JDK
一、通过包管理器安装(推荐)
通过 apt 安装 Temurin® JDK(其默认安装路径通常是 /usr/lib/jvm/)
# 1. 安装必要工具(如果尚未安装)
sudo apt update
sudo apt install -y wget apt-transport-https gpg lsb-release
# 2. 创建 keyrings 目录(如果不存在)
sudo mkdir -p /etc/apt/keyrings
# 3. 下载并转换 GPG 密钥,保存到 /etc/apt/keyrings/ 目录
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | \
gpg --dearmor | \
sudo tee /etc/apt/keyrings/adoptium.gpg > /dev/null
# 4. 设置密钥文件的权限(只读,仅 root 可访问)
sudo chmod 644 /etc/apt/keyrings/adoptium.gpg
# 5. 添加 APT 仓库,并在 sources.list 中明确绑定该密钥
# 注意:$(lsb_release -cs) 会自动获取当前系统的代号(如 jammy, noble)
echo "deb [signed-by=/etc/apt/keyrings/adoptium.gpg] https://packages.adoptium.net/artifactory/deb $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/adoptium.list
# 6. 更新软件源并安装 JDK
sudo apt update
# 安装 temurin-17-jdk
sudo apt install -y temurin-17-jdk
# 安装 temurin-25-jdk
sudo apt install -y temurin-25-jdk
# 7. 检查是否安装成功
java -version
# 查询安装目录
readlink -f $(which java)
二、如何查看所有已安装的 Java 版本并切换
同时安装 temurin-17-jdk 和 temurin-25-jdk 后,系统的默认 Java 版本通常由 update-alternatives 机制决定。一般情况下,最后安装的版本会成为默认版本(因为安装过程中会将自身注册为 auto 模式下的最高优先级)。但实际默认版本取决于每个 JDK 在 update-alternatives 中的优先级(priority)设置,而不同包的维护者可能设定不同的优先级数值。
🔍 如何查看当前默认版本
运行以下任一命令即可看到当前激活的 Java 版本:
java -version
或者
javac -version
🧰 如何查看所有已安装的 Java 版本并切换
使用 update-alternatives 命令:
sudo update-alternatives --config java
系统会列出所有已注册的 Java 版本,例如:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/temurin-25-jdk/bin/java 2500 auto mode
1 /usr/lib/jvm/temurin-17-jdk/bin/java 1700 manual mode
2 /usr/lib/jvm/temurin-25-jdk/bin/java 2500 manual mode
Press <enter> to keep the current choice[*], or type selection number:
- 带
*的即为当前默认版本。 - 输入对应的数字(如
1)并按回车,即可切换默认版本。
同样,对于
javac等工具,也可以单独配置:sudo update-alternatives --config javac
📌 补充说明
- 优先级规则:
update-alternatives的auto模式会选择优先级最高的版本。JDK 25 的优先级通常高于 JDK 17,因此很可能自动选 JDK 25。如果希望固定使用某个版本,可以在--config中手动选择(会切换为manual模式)。 - 环境变量干扰:如果之前手动设置了
JAVA_HOME并在PATH中优先指向了某个版本,可能会覆盖系统默认。检查echo $JAVA_HOME和which java可以排除这种干扰。
如果你希望默认使用 JDK 17,只需运行 sudo update-alternatives --config java 并选择 17 的序号即可。
三、注意
- /etc/apt/trusted.gpg.d/:是旧时代的全局信任区。里面任何一个密钥都能用来验证所有软件源,存在“城门失火,殃及池鱼”的安全风险,因此已不推荐用于第三方软件源。
- /etc/apt/keyrings/:是新时代的隔离存放处。它将不同源的密钥隔离开,并在仓库配置中明确指定,实现了“一把钥匙开一把锁”的信任隔离,是目前推荐的安全做法。
浙公网安备 33010602011771号