🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # sdkman 介绍 SDKMAN 是一个用于在大多数基于 Unix 系统上管理**多个软件开发工具包**(Java, Groovy, Scala, Kotlin and Ceylon. Ant, Gradle 等) 的并行版本的工具 。 # sdkman 安装 在类 unix 平台上安装 sdkman 非常容易。它可以顺利的安装在Mac OSX、Linux、WLS、Cygwin、Solaris和FreeBSD 上,同时还支持Bash和 ZSH shell。 只需打开一个新终端机并输入: ~~~ $ curl -s "https://get.sdkman.io" | bash ~~~ 按照相应的指令提示,完成相应的操作后继续输入: ~~~ $ source "$HOME/.sdkman/bin/sdkman-init.sh" ~~~ 到这里我们就可以验证 sdk 的安装版本了: ~~~ $ sdk version ~~~ ![](https://img.kancloud.cn/32/5a/325a29771e8ffeda837ee56df0a8982b_548x289.png) 上图红色框标记显示我当前 sdkman 的版本,每次执行`sdk version`命令时,都会检查是否会有新版本,如果要更新输入`y`就可以 有些系统发行版本不包含`zip`和`unzip`,如果安装时遇到相关错误,可以输入如下命令安装`zip`和`unzip` ~~~ $ sudo apt-get install zip unzip ~~~ 从上面的安装命令上可以看出,sdkman 默认的安装路径是在`$HOME/.sdkman`下,我们也可以自定义安装路径,只需要指定`SDKMAN_DIR`变量值就好了: ~~~ $ export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash ~~~ 到这里 sdkman 的安装就结束了,我们来看看如何使用 # sdkman 使用教程 命令行下学习一个新玩意当然是查看它的 help 命令,输入: ~~~ $ sdkman help ~~~ # sdk list 先来输入: ~~~ $ sdk list ~~~ 绿色的标记就是 sdkman 集成的所有可用的 candidate,通过按回车「enter」按键,会看到更多可用 candidate 我们指定 candidate,输入: ~~~ $ sdk list java ~~~ ![](https://img.kancloud.cn/65/8d/658dc825af7ab974e96049d6b3d71ab4_548x740.png) 从上图中可以看到所有 java 可用的版本 version,以及标识 indentifier,以及状态 status,我已经安装了 java 12 和 11 有了这些信息做铺垫,我们可以安装任意 sdkman 内置的软件开发包了,继续以 java 为例 # sdk install 回看 sdkman help 命令的输出,使用 install 命令,我们再安装一个 Java 最新`13.0.1.j9`版本 ![](https://img.kancloud.cn/fa/7e/fa7e24c70cb817513d08715afb9bc996_541x260.png) 从上图你可以看出,绿色标记的内容是 list 命令结果中的 version 值,但是报错不可用,输入`indentifier`编号才能正常下载,这里需要注意 安装完后,status 就会编程 installed 状态 # sdk current 当安装多个版本的 java 时,我们输入下面命令获取当前正在用 candidate 的版本 ~~~ $ sdk current java ~~~ # sdk use 了解了当前使用版本,如果我们想切换到其他版本, 可以输入: ~~~ $ sdk use java 12.0.2.j9-adpt ~~~ 注意⚠️: 这里同样是指定的 indentifier 的值 # sdk default 如果我们想指定某个版本为默认版本,可以输入: ~~~ $ sdk default java jdk1.8.0_162.jdk ~~~ 注意⚠️: 这里同样是指定的 indentifier 的值 # sdk uninstall 当我们想卸载某个版本可以输入: ~~~ $ sdk uninstall java 12.0.2.j9-adpt ~~~ 注意⚠️: 这里同样是指定的 indentifier 的值 # sdk upgrade 如果我们想升级某个 candidate,可以输入: ~~~ $ sdk upgrade java ~~~ # sdk flush 使用 sdkman 时间变长也会慢慢产生很多缓存内容,我们可以输入 清理广播消息: ~~~ $ sdk flush broadcast ~~~ 清理下载的 sdk 二进制文件(长时间使用后清理,可以节省出很多空间): ~~~ $ sdk flush archives ~~~ 清理临时文件内容: ~~~ $ sdk flush temp ~~~ 到这里 sdkman 的基本使用就已经介绍完了,其实这些命令都不用急,想不起来的时候执行`sdk help`来临时查看一下就好 # sdkman 卸载 如果我们不喜欢 sdkman 了,我们也可以轻松的卸载掉它: ~~~ $ tar zcvf ~/sdkman-backup_$(date +%F-%kh%M).tar.gz -C ~/ .sdkman $ rm -rf ~/.sdkman ~~~ 最后打开你的 .bashrc、.bash\_profile 和/或者 .profile,找到并删除下面这几行。 ~~~ #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" ~~~ 我用的 zshrc,找到 .zshrc 文件删除掉上面内容即可