windows 安装sdkman

老刘

Windows 安装 SDKMAN:最稳妥的办法、替代方案和常见问题一次讲明白

目标关键词:Windows 安装 SDKMAN

很多人第一次搜“Windows 安装 SDKMAN”,都会以为这是一个像 JDK、Maven 那样能直接在 Windows 上一键装好的工具。实际上,SDKMAN 原生主要面向的是 Linux / macOS 环境,Windows 不能直接原生安装并正常使用,这也是大多数人卡住的地方。

如果你是在 Windows 电脑上做 Java、Kotlin、Groovy、Scala 这类开发,想用 SDKMAN 来管理多个版本的 JDK、Maven、Gradle,最稳妥的做法不是硬装,而是选择适合 Windows 的替代方案,或者通过 WSL 间接使用。

下面我按“问题分析 → 解决方案 → 注意事项”的方式,给你讲清楚。


一、问题分析:为什么 Windows 上装不了原版 SDKMAN?

SDKMAN 的设计逻辑是:

  • 依赖类 Unix 环境;
  • 依赖 bash、curl、unzip、zip 等常见命令;
  • 默认使用 Linux/macOS 的目录结构和 shell 习惯;
  • 安装脚本、环境变量配置方式,也更偏向 Unix 系统。

而 Windows 原生环境里:

  • 没有 bash 作为默认 shell;
  • 目录分隔符、权限机制、环境变量逻辑不同;
  • 某些脚本和软链接行为不兼容;
  • SDKMAN 官方也没有把 Windows 当作原生支持目标。

所以结论很明确:

Windows 上不能像 Linux 那样直接原生安装 SDKMAN。

但这不代表没办法用,只是要换思路。


二、解决方案:Windows 上想用 SDKMAN,有 3 条路

方案一:用 WSL 安装 SDKMAN(最接近原生体验,推荐)

如果你是 Windows 10 / Windows 11 用户,最推荐的方式就是:

先安装 WSL,再在 Linux 子系统里安装 SDKMAN。

这相当于在 Windows 里开了一个 Linux 环境,SDKMAN 就能正常跑。


1. 安装 WSL

以管理员身份打开 PowerShell,执行:

wsl --install

如果提示需要重启,重启电脑即可。

如果你想指定 Ubuntu,也可以:

wsl --install -d Ubuntu

安装完成后,打开 Ubuntu 终端,设置用户名和密码。


2. 更新系统依赖

进入 WSL 的 Ubuntu 后,执行:

sudo apt update
sudo apt upgrade -y
sudo apt install curl zip unzip -y

这几个工具对 SDKMAN 很重要。


3. 安装 SDKMAN

执行:

curl -s "https://get.sdkman.io" | bash

安装完成后,按提示执行:

source "$HOME/.sdkman/bin/sdkman-init.sh"

然后检查是否成功:

sdk version

如果显示版本号,说明安装成功。


4. 使用 SDKMAN 管理 JDK

比如查看可安装的 JDK:

sdk list java

安装某个版本,例如 Temurin 17:

sdk install java 17.0.10-tem

切换版本:

sdk use java 17.0.10-tem

设置默认版本:

sdk default java 17.0.10-tem

查看当前 Java:

java -version

5. 配合 Windows 使用的注意点

WSL 里的 SDKMAN 管的是 WSL 内部环境,不是 Windows 原生环境。

也就是说:

  • WSL 终端里能用 SDKMAN;
  • Windows CMD / PowerShell 里不一定直接生效;
  • 如果你的开发工具是 IntelliJ IDEA、VS Code,记得检查它们到底是调用 Windows 的 Java,还是 WSL 里的 Java。

如果你只是做 Linux 环境开发、服务器环境模拟、脚本测试,WSL 方案非常合适。


三、方案二:Windows 原生用 SDK 版本管理替代工具

如果你只是想在 Windows 上切换 JDK、Maven、Gradle 版本,其实没必要执着于 SDKMAN。下面这些工具更适合 Windows。


1. 用 jabba 管理 Java 版本

jabba 是一个跨平台的 Java 版本管理工具,Windows 也能用。

安装后可以像 SDKMAN 一样切换多个 JDK。

常见用法:

jabba install temurin@17
jabba use temurin@17

优点:

  • Windows 支持更友好;
  • 管理 Java 很方便;
  • 跨平台体验不错。

缺点:

  • 对 Maven、Gradle 这类工具的管理不如 SDKMAN 全面。

2. 用 Scoop 管理开发工具

如果你常用 Windows 开发环境,Scoop 是非常实用的工具。

安装后可以直接装:

  • JDK
  • Maven
  • Gradle
  • Git
  • Node.js
  • Python

安装 Scoop 的命令:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex

然后安装工具,例如:

scoop install openjdk17
scoop install maven
scoop install gradle

优点:

  • Windows 原生支持好;
  • 安装简单;
  • 适合日常开发。

缺点:

  • 不是 SDKMAN 的同类体验;
  • 对“切换版本”的管理不如 SDKMAN 那么集中。

3. 用 Chocolatey

Chocolatey 也是 Windows 上很常见的软件包管理器。

例如安装 Java:

choco install temurin17

适合企业 Windows 环境、批量部署场景。


四、如果你一定要“在 Windows 上用 SDKMAN”,最推荐的实际方案

这里直接给你一个结论:

场景 1:你主要做 Linux/服务器开发

推荐:WSL + SDKMAN

这是最接近原版 SDKMAN 的方案,兼容性最好。


场景 2:你主要做 Windows 本地开发

推荐:Scoop 或 jabba

如果你主要在 Windows 上跑 IntelliJ IDEA、Eclipse、VS Code,Scoop 和 jabba 会更省心。


场景 3:你既想要 Windows 方便,又想要 Linux 环境

推荐:Windows + WSL 双环境

  • Windows 里装 IDE;
  • WSL 里装 SDKMAN;
  • 编译、测试、脚本放在 WSL 里跑;
  • 本地编辑仍然用 Windows 工具。

这个组合很实用。


五、完整实操:WSL 下安装 SDKMAN 的一步一步教程

下面给你一个适合小白的完整流程。


第一步:确认系统版本

按下 Win + R,输入:

winver

查看你是不是 Windows 10 或 Windows 11。
如果是较新的版本,WSL 基本都能用。


第二步:开启 WSL

以管理员身份打开 PowerShell,执行:

wsl --install

等待安装完成并重启。

如果提示没有发行版,也可以手动装 Ubuntu:

wsl --install -d Ubuntu

第三步:打开 Ubuntu

在开始菜单里搜索 Ubuntu,点开后会进入 Linux 终端。

首次启动需要创建用户名和密码。


第四步:安装依赖

执行:

sudo apt update
sudo apt install curl zip unzip -y

第五步:安装 SDKMAN

执行:

curl -s "https://get.sdkman.io" | bash

安装后执行:

source "$HOME/.sdkman/bin/sdkman-init.sh"

再检查:

sdk version

第六步:安装 JDK

先查看可用版本:

sdk list java

找到你要的版本后安装,比如:

sdk install java 17.0.10-tem

然后切换默认版本:

sdk default java 17.0.10-tem

确认:

java -version

六、常见问题排查

1. sdk: command not found

原因通常是 SDKMAN 没有初始化成功。

解决方法:

source "$HOME/.sdkman/bin/sdkman-init.sh"

如果每次打开终端都要手动执行,可以把这句加到 ~/.bashrc

echo 'source "$HOME/.sdkman/bin/sdkman-init.sh"' >> ~/.bashrc
source ~/.bashrc

2. curl: command not found

说明缺少 curl,安装:

sudo apt install curl -y

3. 下载很慢或失败

可能是网络问题,建议:

  • 检查代理;
  • 更换网络;
  • 先确认能访问 https://get.sdkman.io
  • WSL 环境下必要时配置代理。

4. JDK 装了但 IDEA 里没生效

这是最常见的问题之一。

原因是:

  • SDKMAN 装在 WSL 里;
  • IDEA 可能调用的是 Windows 里的 Java。

解决方法:

  • 检查 IDEA 的 Project SDK;
  • 检查 Windows 环境变量 JAVA_HOME
  • 如果你想让 Windows 里的程序使用 JDK,建议把 JDK 直接装在 Windows 侧,而不是只装在 WSL 里。

七、Windows 开发环境的推荐搭配

如果你平时做 Java 开发,最省心的搭配一般是:

方案 A:纯 Windows

  • Scoop 或 Chocolatey
  • 安装 JDK、Maven、Gradle
  • IDE 直接使用 Windows 环境

适合:

  • 日常开发
  • 公司办公电脑
  • 不想折腾 WSL 的用户

方案 B:Windows + WSL

  • Windows 负责图形界面和 IDE
  • WSL 负责 SDKMAN、Linux 命令、脚本环境

适合:

  • 需要模拟服务器环境
  • 经常接触 Linux 部署
  • Java 后端开发、脚本开发

方案 C:开发机直接 Linux

如果你主要就是做后端、运维、容器、服务器开发,直接装 Linux 往往更顺手,SDKMAN 也最自然。


八、注意事项:别踩这些坑

1. 不要直接在 Windows CMD 里照搬 Linux 安装命令

像下面这种:

curl -s "https://get.sdkman.io" | bash

这句命令不能直接在 Windows CMD 或 PowerShell 里执行成功,必须在 WSL 的 Linux 终端里跑。


2. 不要把 WSL 和 Windows 环境混为一谈

WSL 里安装的工具,只对 WSL 生效。
Windows 侧程序是否能调用,要看你有没有额外配置。


3. 如果只想管理 Java,没必要强上 SDKMAN

Windows 用户直接用:

  • Scoop
  • jabba
  • Chocolatey

通常更简单。


4. IDE 的 SDK 路径要分清楚

你在 IDEA 里看到的 JDK 路径,可能是:

  • Windows 路径:C:\Program Files\Java\...
  • WSL 路径:/home/xxx/.sdkman/candidates/java/...

这两个不是一回事。


九、总结

如果你搜索的是 Windows 安装 SDKMAN,最关键的一句话就是:

SDKMAN 不能在 Windows 原生环境直接安装,推荐通过 WSL 使用,或者改用 Windows 原生替代工具。

最实用的选择是:

  • 想原汁原味用 SDKMAN:Windows + WSL
  • 想在 Windows 里省事管理 Java:jabba / Scoop / Chocolatey
  • 主要做 Linux 开发:直接 WSL 或 Linux 更合适

对于大多数 Windows 用户来说,WSL + SDKMAN 是最接近“既保留 Windows,又能用 SDKMAN”的方案。

文章版权声明:文章内容均来源于各大短视频平台搜集以及修改和删减新增,如有侵权或者违规,请联系站长进行删除,如需转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,3人围观)

还没有评论,来说两句吧...

目录[+]