必须确认curl和bash可用、jdk版本≥17、shell配置文件正确(zsh用~/.zshrc,bash用~/.bashrc);安装后需手动source初始化并执行sdk default设置默认版本,否则gradle -v会报错。

SDKMAN安装Gradle前必须确认的三件事
不是所有系统都默认支持SDKMAN,也不是装完就能直接用gradle命令——漏掉任一环节都会卡在command not found。先检查:
-
curl和bash是否可用(Linux/macOS基本都有;Windows需用Git Bash或WSL) -
java -version能否输出 JDK 11/17(Gradle 8.x 要求最低 JDK 17,Android 项目尤其注意) - 当前 shell 是
bash还是zsh(macOS Catalina 后默认 zsh,source命令要写进~/.zshrc,不是~/.bashrc)
执行安装时最容易出错的两步
很多人复制粘贴脚本后运行失败,问题不在 SDKMAN 本身,而在初始化阶段没生效:
- 运行
curl -s "https://get.sdkman.io" | bash后,必须手动执行source "$HOME/.sdkman/bin/sdkman-init.sh"——这行命令只对当前终端有效,关掉重开就失效 - 如果想永久生效,得把
source "$HOME/.sdkman/bin/sdkman-init.sh"追加到 shell 配置文件里:echo 'source "$HOME/.sdkman/bin/sdkman-init.sh"' >> ~/.zshrc(zsh)或> ~/.bashrc(bash) - 验证 SDKMAN 是否真加载成功:运行
sdk version,有输出版本号才算通过;若报command not found: sdk,说明上一步没生效
sdk install gradle 后为什么 gradle -v 还报错?
常见现象是 sdk install gradle 8.14.2 显示“installed”,但紧接着 gradle -v 提示找不到命令。原因通常是:
- 刚安装完没切换版本:SDKMAN 安装后不会自动设为默认,必须显式执行
sdk default gradle 8.14.2 - 终端未重新加载环境:即使加了
source到配置文件,也要新开一个终端,或手动再跑一遍source ~/.zshrc - 权限问题:极少数 Linux 发行版(如某些麒麟OS定制版)对
~/.sdkman/candidates/gradle下的 bin 目录缺少执行权限,可补一句chmod +x ~/.sdkman/candidates/gradle/current/bin/gradle
Gradle 版本选哪个?别只看 latest
运行 sdk list gradle 会列出几十个版本,但不是最新版最稳:
- Android 项目优先选
8.10或8.12(对应 AGP 8.4/8.5,兼容性经过大量 CI 验证) - 纯 Java/Kotlin 项目可选
8.14.2(2026 年 10 月最新稳定版) - 避开带
-rc、-milestone的预发布版,它们可能不兼容gradlewwrapper 机制 - 如果项目已有
gradle/wrapper/gradle-wrapper.properties,里面的distributionUrl决定了该用哪个版本——全局gradle命令只是辅助,真正构建靠的是 wrapper











