可通过WSL在Windows上使用SDKMAN管理Java版本,或选用Jabba、手动配置等方案实现多JDK切换。
SDKMAN 是一个在 Unix/Linux 和 macOS 上广泛使用的开发工具管理器,尤其适合管理多个 Java 版本。但官方 SDKMAN 不支持 Windows 系统,因为它依赖于 Bash shell 和 Unix 风格的环境。不过,你仍然可以在 Windows 上通过以下方式实现类似 SDKMAN 的 Java 版本管理功能。
步骤如下:
wsl --installsudo apt update
sudo apt install curl zip unzip
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk version
sdk install java 17.0.9-tem
安装完成后,可在 WSL 内切换 Java 版本:sdk use java 17.0.9-tem
Jabba 是一个跨平台的 Java 版本管理工具,语法类似 SDKMAN,支持 Windows。
hocolatey 安装:choco install jabba
jabba ls-remote
jabba install adopt-openjdk-11.0.11
jabba use adopt-openjdk-11.0.11
jabba alias default adopt-openjdk-11.0.11
Jabba 会自动修改 JAVA_HOME 和 PATH,适用于大多数开发场景。
C:\java\jdk8C:\java\jdk17C:\java\jdk21
JAVA_HOME 环境变量,指向当前使用的 JDK 目录。%JAVA_HOME%\bin 添加到系统 PATH。use-java8.bat:setx JAVA_HOME "C:\java\jdk8" echo Switched to Java 8
同理创建 use-java17.bat 等。运行这些脚本即可切换版本(需重新打开终端生效)。
基本上就这些。虽然 Windows 没有原生 SDKMAN,但通过 WSL 可以获得完整体验,而 Jabba 或手动方案也能满足日常开发需求。选择哪种方式取决于你是否常用 Linux 环境。不复杂但容易忽略的是环境变量的及时更新和终端重启。