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-jdktemurin-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-alternativesauto 模式会选择优先级最高的版本。JDK 25 的优先级通常高于 JDK 17,因此很可能自动选 JDK 25。如果希望固定使用某个版本,可以在 --config 中手动选择(会切换为 manual 模式)。
  • 环境变量干扰:如果之前手动设置了 JAVA_HOME 并在 PATH 中优先指向了某个版本,可能会覆盖系统默认。检查 echo $JAVA_HOMEwhich java 可以排除这种干扰。

如果你希望默认使用 JDK 17,只需运行 sudo update-alternatives --config java 并选择 17 的序号即可。

三、注意

  • /etc/apt/trusted.gpg.d/:是旧时代的全局信任区。里面任何一个密钥都能用来验证所有软件源,存在“城门失火,殃及池鱼”的安全风险,因此已不推荐用于第三方软件源。
  • /etc/apt/keyrings/:是新时代的隔离存放处。它将不同源的密钥隔离开,并在仓库配置中明确指定,实现了“一把钥匙开一把锁”的信任隔离,是目前推荐的安全做法。
posted @ 2026-06-04 16:09  悠哉大斌  阅读(8)  评论(0)    收藏  举报