SDKMAN 备忘清单:Java 生态 SDK 版本管理器的安装、配置与实战速查

发布时间:2026/9/15 1:05:53
SDKMAN 备忘清单:Java 生态 SDK 版本管理器的安装、配置与实战速查 SDKMAN 备忘清单Java 生态 SDK 版本管理器的安装、配置与实战速查【免费下载链接】reference面向开发者的技术速查清单Cheat Sheets集合整理常见技术、工具与开发流程帮助快速查阅关键信息提高开发效率。项目地址: https://gitcode.com/GitHub_Trending/referen/reference本指南以 Quick Reference 仓库中 docs/sdkman.md 备忘清单为核心系统讲解 SDKMAN 这一适用于大多数 Unix 系系统的 JVM 生态 SDK 版本管理工具从安装初始化、候选版本查询到安装/卸载/切换/升级再到基于.sdkmanrc的项目级环境sdk env与~/.sdkman/etc/config精细调优。读完本文你将掌握用 SDKMAN 一键安装 Java、Groovy、Scala、Gradle、Maven、Spring Boot 等 SDK、按项目自动切换版本以及离线模式、缓存清理等进阶运维能力。SDKMAN 是什么SDKMANSoftware Development Kit Manager是一款专用于管理 Java 体系各类 SDK 版本的工具可用于大多数基于 Unix 的系统macOS、Linux 等。它通过统一的命令行入口管理候选 SDKCandidates覆盖 Java、Groovy、Gradle、Maven、Scala、Spring Boot、Kotlin 等常用工具链解决多项目多版本并存时的安装、切换与隔离问题。在 Quick Reference 仓库中SDKMAN 备忘清单位于 docs/sdkman.md与 Java 备忘清单 等共同构成面向开发者的技术速查集合你可以从仓库根目录的 README.md「软件包管理器」分类快速定位本主题。安装与初始化macOS / Linux 安装在 macOS 或 Linux 终端中执行以下命令即可安装 SDKMANcurl -s https://get.sdkman.io | bashWindows 安装SDKMAN 面向 Unix 系系统Windows 下需要通过以下两种方式之一获得类 Unix 环境WSLWindows Subsystem for Linux方式Git Bash 方式。在 WSL 或 Git Bash 终端中同样执行curl -s https://get.sdkman.io | bash初始化安装完成后需要初始化 SDKMAN 环境新开的终端通常会自动加载若未生效则手动执行source $HOME/.sdkman/bin/sdkman-init.sh验证安装$ sdk version正常输出类似SDKMAN! script: 5.7.0 native: 0.1.3script对应脚本版本号native对应原生二进制组件版本号。若命令可正常返回上述信息说明安装与初始化成功。获取帮助运行sdk help可获得一个有用的顶级帮助页面$ sdk help还可以为命令添加限定符查看某个特定子命令的帮助例如$ sdk help install查看可用与已安装的 SDK列出所有可用 SDKsdk list查看特定 SDK 的版本列表例如查看 Java 的全部可用版本含发行版标识如21.0.2-tem表示 Temurin 发行版$ sdk list java查看当前使用的 SDK$ sdk current该命令同样支持指定某个 SDK精确查看其当前使用的版本$ sdk current java Using java version 21.0.2-tem不带参数时则输出当前会话中所有 SDK 的使用状态例如$ sdk current Using: groovy: 4.0.20 java: 21.0.2-tem scala: 3.4.1列出所有已安装的 SDK 版本$ sdk list installed安装、切换与卸载安装特定版本安装指定版本以 Java 为例$ sdk install java version例如sdk install java 21.0.2-tem。安装过程中 SDKMAN 会询问是否设为默认版本可按需回答。切换到指定版本切换到已安装的指定版本仅对当前 shell 会话生效$ sdk use java version卸载指定版本$ sdk uninstall java version也可以结合具体候选名操作例如卸载 Scala 3.4.1$ sdk uninstall scala 3.4.1安装本地版本如果使用快照版本或已在本机安装好 SDK可以通过指定本地路径来安装本地版本跳过下载$ sdk install groovy 3.0.0-SNAPSHOT /path/to/groovy-3.0.0-SNAPSHOT对于 macOS 上已通过其他方式安装的 JDK也可直接登记本地路径例如$ sdk install java 17-zulu /Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home注意 macOS 上 JDK 的真实路径位于.jdk/Contents/Home目录需指定到该层。设置默认版本与升级设置默认版本default与use的区别在于use只影响当前 shelldefault则持久化为新会话的默认版本。$ sdk default java version例如$ sdk default scala 3.4.1升级 SDK 到最新版本升级特定 SDK 到最新版$ sdk upgrade springboot不带参数时列出所有已安装 SDK 的过时情况供你决定逐个升级$ sdk upgrade更新 SDK 元数据当 SDK 元数据可能过时时命令行会显示如下警告WARNING: SDKMAN is out-of-date and requires an update.此时运行sdk update即可刷新候选列表缓存并可发现新加入的候选$ sdk update # Adding new candidate(s): kotlin由于 SDKMAN 需要知晓新增或已移除的 SDK建议定期执行sdk update。更新 SDKMAN 自身$ sdk selfupdate安装新版本的 SDKMAN如果可用。如需强制重新安装传入force参数$ sdk selfupdate force另外SDKMAN 每天会自动代表用户检查一次自身的新版本。项目级环境配置.sdkmanrc 与 sdk env对于多项目并行开发SDKMAN 提供了基于项目目录的环境切换能力核心是一个名为.sdkmanrc的配置文件。生成 .sdkmanrc进入项目根目录执行$ sdk env initSDKMAN 会在当前目录创建.sdkmanrc内容类似# Enable auto-env through the sdkman_auto_env config # Add keyvalue pairs of SDKs to use below java21.0.2-tem文件采用keyvalue形式逐行声明项目所需的 SDK 与版本可同时声明多个候选例如java21.0.2-tem scala3.4.1 groovy4.0.20应用 .sdkmanrc 配置手动切换到.sdkmanrc声明的版本$ sdk env # 您应该看到如下输出 # Using java version 21.0.2-tem in this shell.重置为默认版本离开项目或想恢复默认版本时执行$ sdk env clear安装缺失的 SDK若.sdkmanrc中声明的版本尚未安装一条命令即可补齐$ sdk env install进入目录自动切换在 SDKMAN 配置中设置sdkman_auto_envtrue即可在cd进入目录时自动加载.sdkmanrc切换 SDK 版本。需要注意这也会在离开该目录时将项目专属的 SDK 重置为默认版本。辅助命令与进阶运维获取 SDK 安装路径sdk home返回指定 SDK 版本所在目录的绝对路径便于在脚本或 IDE 中引用$ sdk home java 21.0.2-tem # /home/myuser/.sdkman/candidates/java/21.0.2-tem清理缓存flushflush用于刷新缓存目录正常情况下很少需要执行但它能让你不必手动删除目录$ sdk flush注意手动删除类似.sdkman/tmp的目录会破坏 SDKMAN 的正常运行请始终使用flush命令代替手动清理。离线模式启用强制离线模式$ sdk offline enable重新启用联机模式$ sdk offline disable离线模式下sdk list仅显示已安装的版本例如$ sdk list groovy # --------------------------- # # 离线模式仅显示已安装的groovy版本 # -------------------------- # # 2.4.4 # # - 2.4.3 # # -------------------------- # # - - installed # # - currently in use # # ---------------------------其中-标记已安装installed的版本标记当前正在使用currently in use的版本。SDKMAN 会根据互联网是否可用自动禁用/启用离线模式当然需要网络连接的远程命令在离线时会失效并发出警告。配置文件详解~/.sdkman/etc/configSDKMAN 的所有行为开关集中在~/.sdkman/etc/config文件中可通过sdk-config命令在系统编辑器中打开编辑。以下配置项均可设为true|false除特殊说明外# 使 sdkman 成为非交互式的适用于 CI 环境 sdkman_auto_answertrue|false # 检查更新版本并提示更新 sdkman_selfupdate_featuretrue|false # 禁用 SSL 证书验证 # https://github.com/sdkman/sdkman-cli/issues/327 # HERE BE DRAGONS.... sdkman_insecure_ssltrue|false # 配置 curl 超时 sdkman_curl_connect_timeout5 sdkman_curl_continuetrue sdkman_curl_max_time10 # 订阅测试版频道 sdkman_beta_channeltrue|false # 启用详细调试 sdkman_debug_modetrue|false # 启用色彩模式 sdkman_colour_enabletrue|false # 启用自动环境 sdkman_auto_envtrue|false # 启用 bash 或 zsh 自动完成功能 sdkman_auto_completetrue|false各配置项用途速查配置项默认倾向作用sdkman_auto_answerfalse置为true时所有交互提示自动应答适合 CI 环境sdkman_selfupdate_featuretrue是否检查新版本并提示更新sdkman_insecure_sslfalse禁用 SSL 证书验证官方标注 HERE BE DRAGONS仅在明确知道风险时开启sdkman_curl_connect_timeout5秒配置 curl 连接超时sdkman_curl_continuetrue允许 curl 断点续传sdkman_curl_max_time10秒配置 curl 总超时上限sdkman_beta_channelfalse订阅测试版频道抢先体验新功能sdkman_debug_modefalse输出详细调试日志排查问题时开启sdkman_colour_enabletrue是否启用彩色输出sdkman_auto_envfalse进入目录时自动加载.sdkmanrc切换环境sdkman_auto_completetrue启用 bash 或 zsh 下的命令自动补全常见问题与实用建议多版本并行sdk install可并存多个 Java 版本用sdk use临时切换、sdk default固化默认版本二者组合即可满足日常开发与构建的版本隔离需求。CI 环境将sdkman_auto_answertrue写入配置配合非交互式脚本即可在流水线中静默安装指定 SDK。网络受限环境开启sdkman_offline_mode通过sdk offline enable后仅操作本地已安装版本已安装版本足以满足本地编译需求时可避免网络依赖。缓存问题排查遇到 SDKMAN 行为异常优先使用sdk flush清理缓存而非手动删除.sdkman/tmp等目录。项目可移植性将.sdkmanrc纳入版本控制配合sdk env install团队成员即可一键复现与 CI 一致的 SDK 环境。延伸阅读本备忘清单原始出处docs/sdkman.md项目速查清单排版与贡献约定docs/quickreference.md仓库文档总览与分类导航README.md相关语言速查Java 备忘清单、Scala、Groovy按需查阅仓库 docs 目录下对应文档【免费下载链接】reference面向开发者的技术速查清单Cheat Sheets集合整理常见技术、工具与开发流程帮助快速查阅关键信息提高开发效率。项目地址: https://gitcode.com/GitHub_Trending/referen/reference创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考