SDKMAN!(Software Development Kit Manager)是一个用于管理开发工具套件(SDK)的开源工具。它允许开发人员在 Unix 系统(如 macOS 和 Linux)上方便地安装、管理和切换多个 SDK 版本。同时也可以用于管理开发工具如 Maven、Gradle 和 Scala,以及在多个版本之间轻松切换。
注:Windows 系统需要借助 WSL 或 Git Bash ,详见:https://sdkman.io/install
安装
1 2
| curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh"
|
查看本机当前可用的版本
执行命令 sdk list java
可以查询适用于当前系统的发行版,以及已安装和当前在用的版本。
各发行版举例说明:
供应商和发行版 |
后缀 |
例子 |
说明 |
AdoptOpenJDK/Adoptium (Temurin) |
tem |
11.0.23-tem |
Adoptium 是由 AdoptOpenJDK 项目演变而来,由 Eclipse 基金会管理。 |
Amazon Corretto |
amzn |
11.0.23-amzn |
Amazon 提供的 OpenJDK 版本,经过增强和支持的长期支持版本。 |
GraalVM CE (Community Edition) |
graalce |
11.0.23-graalce |
Oracle 提供的支持多语言的 JDK,包括 Java、JavaScript 等。 |
Gluon |
gln |
11.0.23-gln |
专注于 JavaFX 的发行版。 |
Liberica JDK |
librca |
11.0.23-librca |
BellSoft 提供的 OpenJDK 发行版,包含完整的 Java SE 平台实现。 |
Microsoft Build of OpenJDK |
ms |
11.0.23-ms |
Microsoft 提供的 OpenJDK 版本。 |
Oracle JDK |
oracle |
11.0.23-oracle |
Oracle 提供的官方 JDK 版本。 |
SAP Machine |
sapmchn |
11.0.23-sapmchn |
SAP 提供的 OpenJDK 版本。 |
Semeru (IBM) |
sem |
11.0.23-sem |
IBM 提供的 OpenJDK 发行版。 |
Tencent Kona JDK |
kona |
11.0.23-kona |
腾讯提供的 OpenJDK 版本。 |
Zulu by Azul Systems |
zulu |
11.0.23-zulu |
Azul 提供的 OpenJDK 版本,支持多种平台和配置。 |
如果执行命令时出现下面的错误:
1 2 3 4 5 6
| ==== INTERNET NOT REACHABLE! ===================================================
Some functionality is disabled or only partially available. If this persists, please enable the offline mode:
$ sdk offline
|
可以尝试按照下面的步骤解决
1 2 3 4 5 6 7 8 9 10
| sdk flush archives sdk flush candidates
sdk offline enable sdk list java sdk offline disable
sdk list java
|
管理 SDK
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| sdk install java 11.0.23-zulu
export JAVA_HOME="$HOME/.sdkman/candidates/java/current" export PATH="$JAVA_HOME/bin:$PATH"
source ~/.zshrc
java -version
sdk use java 17.0.11-amzn
sdk default java 17.0.11-amzn sdk current java
sdk uninstall java java 17.0.11-amzn
|
设置代理
编辑 ~/.sdkman/etc/config
文件加入以下内容后,执行 source "$HOME/.sdkman/bin/sdkman-init.sh"
使其生效。
1 2 3 4 5 6 7 8 9
| sdkman_http_proxy=127.0.0.1 sdkman_http_proxy_port=7890
sdkman_https_proxy=127.0.0.1 sdkman_https_proxy_port=7890
|
升级
卸载
1 2 3 4 5
| rm -rf ~/.sdkman
vim ~/.zshrc
|