《SDKMAN 官网》有详细的安装使用说明,可跳转查看,这里只做实例演示,详细重现安装过程,一些不必要的说明不再赘述,首先要注意的是全程需要进行联网,离线环境可能只能作为版本切换的工具。
多版本管理工具SDKMAN安装使用实例
1.讯飞星火对 SDKMAN 的介绍
- 核心功能
- 多版本共存与切换:支持Java、Scala、Kotlin等JVM语言以及Maven、Gradle、Spring Boot CLI等常用工具的多版本共存,可无缝切换不同版本。
- 一键安装与配置:自动下载、安装、配置环境变量,简化了开发环境的搭建过程。
- 版本管理:能查看可用软件包、已安装软件包的版本,还可设置默认版本、版本别名,以及临时使用特定版本等。
- 升级与卸载:可升级所有已安装的SDK或指定版本,也可卸载不需要的版本。
- 工作原理:采用一系列sh脚本来注册SDK相关命令,通过从官方API下载组件进行安装,本质上与正常的Unix安装流程类似。
- 适用场景
- 多项目开发:不同项目可能需要不同版本的开发工具,SDKMAN可方便地在各项目所需版本间切换。
- CI/CD环境:能快速配置特定版本的构建环境,确保持续集成和持续交付过程中的环境一致性。
- 工具测试:便于对比不同版本工具的表现,为技术选型提供参考。
- 教学演示:可快速切换演示环境,提高教学效率。
2.安装使用实例
2.1 安装实例
- 服务安装
[root@tcloud sdkman]# curl -s "https://get.sdkman.io" | bash
-+syyyyyyys:
`/yho:` -yd.
`/yh/` +m.
.oho. hy .`
.sh/` :N` `-/o` `+dyyo:.
.yh:` `M- `-/osysoym :hs` `-+sys: hhyssssssssy+
.sh:` `N: ms/-`` yy.yh- -hy. `.N-````````+N.
`od/` `N- -/oM- ddd+` `sd: hNNm -N:
:do` .M. dMMM- `ms. /d+` `NMMs `do
.yy- :N` ```mMMM. - -hy. /MMM: yh
`+d+` `:/oo/` `-/osyh/ossssssdNMM` .sh: yMMN` /m.
-dh- :ymNMMMMy `-/shmNm-`:N/-.`` `.sN /N- `NMMy .m/
`oNs` -hysosmMMMMydmNmds+-.:ohm : sd` :MMM/ yy
.hN+ /d: -MMMmhs/-.` .MMMh .ss+- `yy` sMMN` :N.
:mN/ `N/ `o/-` :MMMo +MMMN- .` `ds mMMh do
/NN/ `N+....--:/+oooosooo+:sMMM: hMMMM: `my .m+ -MMM+ :N.
/NMo -+ooooo+/:-....`...:+hNMN. `NMMMd` .MM/ -m: oMMN. hs
-NMd` :mm -MMMm- .s/ -MMm. /m- mMMd -N.
`mMM/ .- /MMh. -dMo -MMMy od. .MMMs..---yh
+MMM. sNo`.sNMM+ :MMMM/ sh`+MMMNmNm+++-
mMMM- /--ohmMMM+ :MMMMm. `hyymmmdddo
MMMMh. ```` `-+yy/`yMMM/ :MMMMMy -sm:.``..-:-.`
dMMMMmo-.``````..-:/osyhddddho. `+shdh+. hMMM: :MmMMMM/ ./yy/` `:sys+/+sh/
.dMMMMMMmdddddmmNMMMNNNNNMMMMMs sNdo- dMMM- `-/yd/MMMMm-:sy+. :hs- /N`
`/ymNNNNNNNmmdys+/::----/dMMm: +m- mMMM+ohmo/.` sMMMMdo- .om: `sh
`.-----+/.` `.-+hh/` `od. NMMNmds/ `mmy:` +mMy `:yy.
/moyso+//+ossso:. .yy` `dy+:` .. :MMMN+---/oys:
/+m: `.-:::-` /d+ +MMMMMMMNh:`
+MN/ -yh. `+hddhy+.
/MM+ .sh:
:NMo -sh/
-NMs `/yy:
.NMy `:sh+.
`mMm` ./yds-
`dMMMmyo:-.````.-:oymNy:`
+NMMMMMMMMMMMMMMMMms:`
-+shmNMMMNmdy+:`
Now attempting installation...
Looking for a previous installation of SDKMAN...
Looking for unzip...
Looking for zip...
Looking for tar...
Looking for curl...
Looking for sed...
Installing SDKMAN scripts...
Create distribution directories...
Getting available candidates...
Prime platform file...
Prime the config file...
Installing script cli archive...
* Downloading...
######################################################################## 100.0%
* Checking archive integrity...
* Extracting archive...
* Copying archive contents...
* Cleaning up...
Installing script cli archive...
* Downloading...
######################################################################## 100.0%
* Checking archive integrity...
* Extracting archive...
* Copying archive contents...
* Cleaning up...
Set version to 5.19.0 ...
Set native version to 0.7.4 ...
Attempt update of interactive bash profile on regular UNIX...
Added sdkman init snippet to /root/.bashrc
Attempt update of zsh profile...
Updated existing /root/.zshrc
All done!
You are subscribed to the STABLE channel.
Please open a new terminal, or run the following in the existing one:
source "/root/.sdkman/bin/sdkman-init.sh"
Then issue the following command:
sdk help
Enjoy!!!
- 环境初始化
source "$HOME/.sdkman/bin/sdkman-init.sh"
亲测关闭当前连接后环境变量配置失效:
-bash: sdk: command not found
将 sdkman-init.sh
放置到 /etc/profile.d/
目录下即可:
cp $HOME/.sdkman/bin/sdkman-init.sh /etc/profile.d/
source /etc/profile.d/sdkman-init.sh
- 安装验证
[root@tcloud sdkman]# sdk version
SDKMAN!
script: 5.19.0
native: 0.7.4 (linux x86_64)
- 帮助信息
[root@tcloud sdkman]# sdk help
NAME
sdk - The command line interface (CLI) for SDKMAN!
SYNOPSIS
sdk <subcommand> [candidate] [version]
DESCRIPTION
SDKMAN! is a tool for managing parallel versions of multiple JVM related
Software Development Kits on most Unix based systems. It provides a
convenient Command Line Interface (CLI) and API for installing, switching,
removing and listing Candidates.
SUBCOMMANDS & QUALIFIERS
help [subcommand]
install <candidate> [version] [path]
uninstall <candidate> <version>
list [candidate]
use <candidate> <version>
config no qualifier
default <candidate> [version]
home <candidate> <version>
env [init|install|clear]
current [candidate]
upgrade [candidate]
version no qualifier
offline [enable|disable]
selfupdate [force]
update no qualifier
flush [tmp|metadata|version]
EXAMPLES
sdk install java 17.0.0-tem
sdk help install
- 备份及卸载
Here is how you go about removing SDKMAN! from your system:
- Optionally backup and then remove the installation:
tar zcvf ~/sdkman-backup_$(date +%F-%kh%M).tar.gz -C ~/ .sdkman
rm -rf ~/.sdkman
- Remove initialization snippet from your shell configs. Edit and remove the initialisation snippet from your
.bashrc
,.bash_profile
and/or.profile
files. If you use ZSH, remove it from the.zshrc
file. The snippet of code to be removed looks something like this:
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
[[ -s "/home/dudette/.sdkman/bin/sdkman-init.sh" ]] && source "/home/dudette/.sdkman/bin/sdkman-init.sh"
Once removed, you have successfully uninstalled SDKMAN! from your machine.
2.2 使用实例
- 查询当前使用的 Java 版本
sdk current java
- 查询 JDK 列表
sdk list java
- 安装 JDK
# 1.安装最新版
[root@tcloud ~]# sdk install java
Downloading: java 21.0.7-tem
In progress...
# 2.安装指定版本
Downloading: java 21.0.4-tem
In progress...
######################################################################## 100.0%
Installing: java 21.0.4-tem
Done installing!
- 卸载 JDK
sdk uninstall java 21.0.4-tem