使用
安装 SDK
最新稳定版
通过运行以下命令,安装您选择的 SDK(例如,Java JDK)的**最新稳定版**
sdk install java
您将看到类似以下的输出
Downloading: java 21.0.4-tem
In progress...
######################################################################## 100.0%
Installing: java 21.0.4-tem
Done installing!
现在,系统将提示您是否要将此版本设置为**默认版本**。
Do you want java 21.0.4-tem to be set as default? (Y/n):
回答“是”(或“按 Enter 键”)将确保随后打开的所有 Shell 默认使用此版本的 SDK。
Setting java 21.0.4-tem as default.
特定版本
需要 SDK 的**特定**版本?只需指定所需的版本
sdk install scala 3.4.2
后续步骤与上述相同。
安装本地版本
使用快照版本?已经安装了本地版本?通过指定本地安装的路径来设置本地版本
sdk install groovy 3.0.0-SNAPSHOT /path/to/groovy-3.0.0-SNAPSHOT
sdk install java 17-zulu /Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home
请注意,本地版本名称(上述示例中的3.0.0-SNAPSHOT和17-zulu)必须是唯一的名称,并且不能与可用版本名称列表中的任何名称重复。
删除版本
删除已安装的版本。
sdk uninstall scala 3.4.2
请注意,删除本地版本不会删除本地安装。
列出候选版本
要获取可用候选版本的列表
sdk list
这将呈现一个可搜索的字母顺序列表,其中包含每个候选版本的名称、当前稳定的默认版本、网站 URL、描述和简单的安装命令。输出通过管道传输到less
,因此可以使用标准键盘快捷键(使用q
退出)。
================================================================================
Available Candidates
================================================================================
q-quit /-search down
j-down ?-search up
k-up h-help
--------------------------------------------------------------------------------
...
--------------------------------------------------------------------------------
Java (21.0.4-tem) https://projects.eclipse.org/projects/adoptium.temurin/
Java Platform, Standard Edition (or Java SE) is a widely used platform for
development and deployment of portable code for desktop and server environments.
Java SE uses the object-oriented Java programming language. It is part of the
Java software-platform family. Java SE defines a wide range of general-purpose
APIs – such as Java APIs for the Java Class Library – and also includes the Java
Language Specification and the Java Virtual Machine Specification.
$ sdk install java
--------------------------------------------------------------------------------
...
列出版本
要获取候选版本的列表
sdk list groovy
这将生成一个列表视图,显示 SDK 的可用版本、本地版本、已安装版本和当前版本。
================================================================================
Available Groovy Versions
================================================================================
> * 2.4.4 2.3.1 2.0.8 1.8.3
2.4.3 2.3.0 2.0.7 1.8.2
2.4.2 2.2.2 2.0.6 1.8.1
2.4.1 2.2.1 2.0.5 1.8.0
2.4.0 2.2.0 2.0.4 1.7.9
2.3.9 2.1.9 2.0.3 1.7.8
2.3.8 2.1.8 2.0.2 1.7.7
2.3.7 2.1.7 2.0.1 1.7.6
2.3.6 2.1.6 2.0.0 1.7.5
2.3.5 2.1.5 1.8.9 1.7.4
2.3.4 2.1.4 1.8.8 1.7.3
2.3.3 2.1.3 1.8.7 1.7.2
2.3.2 2.1.2 1.8.6 1.7.11
2.3.11 2.1.1 1.8.5 1.7.10
2.3.10 2.1.0 1.8.4 1.7.1
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
使用版本
选择在当前终端中使用给定版本
sdk use scala 3.4.2
务必注意,这将仅**切换当前 Shell 的候选版本**。要使此更改永久生效,请改用default
命令。
默认版本
选择将给定版本设为默认版本
sdk default scala 3.4.2
这将确保所有后续 Shell 启动时都使用版本 3.4.2。
当前版本
查看候选版本当前正在使用什么
sdk current java
Using java version 21.0.4-tem
查看**所有**候选版本当前正在使用什么
sdk current
Using:
groovy: 4.0.22
java: 21.0.4-tem
scala: 3.4.2
Env 命令
每次访问项目时都希望切换到特定的 JDK 或 SDK?这可以通过项目基目录中的.sdkmanrc
文件实现。可以通过发出以下命令自动生成此文件
sdk env init
现在在当前目录中创建了一个包含以下内容的配置文件
# Enable auto-env through the sdkman_auto_env config
# Add key=value pairs of SDKs to use below
java=21.0.4-tem
该文件预先填充了当前正在使用的 JDK 版本,但可以根据需要包含尽可能多的受支持 SDK 的键值对。要切换到.sdkmanrc
文件中存在的配置,只需发出以下命令
sdk env
您应该会看到类似以下的输出
Using java version 21.0.4-tem in this shell.
您的路径也已更新,以便在当前 Shell 中使用任何这些 SDK。离开项目时,您可能希望将 SDK 重置为其默认版本。这可以通过输入以下命令来实现
sdk env clear
Restored java version to 21.0.4-tem (default)
签出新项目后,您可能缺少项目.sdkmanrc
文件中指定的某些 SDK。要安装这些缺少的 SDK,只需键入
sdk env install
Downloading: java 21.0.4-tem
In progress...
######################################################################## 100,0%
Repackaging Java 21.0.4-tem...
Done repackaging...
Installing: java 21.0.4-tem
Done installing!
当您cd
到目录时,是否希望自动切换 SDK 版本?这可以通过在 SDKMAN 配置中设置sdkman_auto_env=true
来完成。请注意,这也会在离开目录时将任何特定于项目的 SDK 重置为其默认版本。
升级版本
查看系统上候选版本的哪些版本已过时
sdk upgrade springboot
Upgrade:
springboot (1.2.4.RELEASE, 1.2.3.RELEASE < 3.3.1)
查看**所有**候选版本的哪些版本已过时
sdk upgrade
Upgrade:
gradle (2.3, 1.11, 2.4, 2.5 < 8.9)
grails (2.5.1 < 6.2.0)
springboot (1.2.4.RELEASE, 1.2.3.RELEASE < 3.3.1
SDKMAN!版本
显示 SDKMAN!的当前脚本和原生版本。
sdk version
SDKMAN!
script: 5.7.0
native: 0.1.3
脱机模式
最初称为“飞行模式”,这允许 SDKMAN!在脱机工作时正常运行。它有一个参数可以传递给启用或禁用脱机模式。
sdk offline enable
Forced offline mode enabled.
sdk offline disable
Online mode re-enabled!
在**脱机**模式下运行时,即使功能有所降低,大多数命令仍然可以工作。例如,list 命令只会显示当前已安装和活动的版本。
sdk list groovy
------------------------------------------------------------
Offline Mode: only showing installed groovy versions
------------------------------------------------------------
> 2.4.4
* 2.4.3
------------------------------------------------------------
* - installed
> - currently in use
------------------------------------------------------------
当网络可用/不可用时,脱机模式也将自动禁用/启用。当然,需要网络连接的命令将无法运行,但会发出警告。
自我更新
如果可用,则安装 SDKMAN!的新版本。
sdk selfupdate
如果没有任何新版本可用,则会显示相应的提示。可以通过将 force 参数传递给命令来强制重新安装
sdk selfupdate force
此外,SDKMAN!还会代表用户每天自动检查是否有新版本。
更新
SDKMAN!需要定期刷新才能了解新的(或已删除的)候选版本。当候选版本元数据可能已过时时,系统会显示一条警告,并提供有关如何更新的说明。只需运行以下命令,即可刷新候选版本缓存,并使新的候选版本可供安装
WARNING: SDKMAN is out-of-date and requires an update.
sdk update
Adding new candidates(s): kotlin
刷新
很少需要刷新 SDKMAN!的本地状态。flush 命令可以帮助完成此操作,因此您无需删除任何目录。**手动删除例如.sdkman/tmp
目录等目录将破坏 SDKMAN!始终使用flush
命令!**
sdk flush
主目录
在脚本中使用 SDKMAN 时,获取 SDK 所在位置的绝对路径通常很有用(类似于 macOS 上的java_home
命令的工作方式)。为此,我们提供了home
命令。
sdk home java 21.0.4-tem
/home/myuser/.sdkman/candidates/java/21.0.4-tem
帮助
您可以通过运行以下命令获得基本帮助
sdk help
这应该会呈现一个有用的顶级帮助页面。您可以向此命令添加限定符以获取有关特定子命令的帮助。
sdk help install
配置
配置可以在~/.sdkman/etc/config
文件中找到。要编辑配置,可以发出sdk config
命令以在系统编辑器中编辑此文件。以下配置可用
# make sdkman non-interactive, preferred for CI environments
sdkman_auto_answer=true|false
# check for newer versions and prompt for update
sdkman_selfupdate_feature=true|false
# disables SSL certificate verification
# https://github.com/sdkman/sdkman-cli/issues/327
# HERE BE DRAGONS....
sdkman_insecure_ssl=true|false
# configure curl timeouts
sdkman_curl_connect_timeout=5
sdkman_curl_continue=true
sdkman_curl_max_time=10
# subscribe to the beta channel
sdkman_beta_channel=true|false
# enable verbose debugging
sdkman_debug_mode=true|false
# enable colour mode
sdkman_colour_enable=true|false
# enable automatic env
sdkman_auto_env=true|false
# enable bash or zsh auto-completion
sdkman_auto_complete=true|false