SDKMAN安装使用
# alternatives --config java
现在JDK的发布版本如此之多,半年一次的发布周期,加上AdoptOpenJDK、SAP、Amazon、Azul Systems这些公司的发布版本。安装JDK的时候去这些版本的网站手动下载安装?太繁琐。本地开发环境经常需要在不同的JDK版本之间切换,还在手动改JAVA_HOME
, 太原始。你需要的是SDKMAN!。
可以把SDKMAIN!当成是Java平台上的RVM。可以在Linux和macOS上工作。
安装SDKMAN!
安装SDKMAN,配置全局所有用户均可使用sdkman安装的软件
# curl -s "https://get.sdkman.io" | bash
# echo 'export SDKMAN_DIR="/usr/local/sdkman"' >> /etc/profile
# echo 'source "/usr/local/sdkman/bin/sdkman-init.sh"' >> /etc/profile
安装完成之后,就可以在新的终端上使用sdk
命令。
安装JDK
首先列出来全部的JDK
$ sdk ls java
全部的可用JDK如下所示。其中AdoptOpenJDK包含使用HotSpot和Eclipse J9两个版本。Identifier
一列是安装时的标识符。
================================================================================
Available Java Versions
================================================================================
Vendor | Use | Version | Dist | Status | Identifier
--------------------------------------------------------------------------------
AdoptOpenJDK | | 13.0.1.j9 | adpt | | 13.0.1.j9-adpt
| | 13.0.1.hs | adpt | | 13.0.1.hs-adpt
| | 12.0.2.j9 | adpt | | 12.0.2.j9-adpt
| | 12.0.2.hs | adpt | | 12.0.2.hs-adpt
| | 11.0.5.j9 | adpt | | 11.0.5.j9-adpt
| >>> | 11.0.5.hs | adpt | installed | 11.0.5.hs-adpt
| | 8.0.232.j9 | adpt | | 8.0.232.j9-adpt
| | 8.0.232.hs | adpt | | 8.0.232.hs-adpt
Amazon | | 11.0.5 | amzn | | 11.0.5-amzn
| | 8.0.232 | amzn | | 8.0.232-amzn
| | 8.0.202 | amzn | | 8.0.202-amzn
Azul Zulu | | 13.0.1 | zulu | | 13.0.1-zulu
| | 12.0.2 | zulu | | 12.0.2-zulu
| | 11.0.5 | zulu | | 11.0.5-zulu
| | 10.0.2 | zulu | | 10.0.2-zulu
| | 9.0.7 | zulu | | 9.0.7-zulu
| | 8.0.232 | zulu | | 8.0.232-zulu
| | 8.0.202 | zulu | | 8.0.202-zulu
| | 7.0.181 | zulu | | 7.0.181-zulu
Azul ZuluFX | | 11.0.2 | zulufx | | 11.0.2-zulufx
| | 8.0.202 | zulufx | | 8.0.202-zulufx
BellSoft | | 13.0.1 | librca | | 13.0.1-librca
| | 12.0.2 | librca | | 12.0.2-librca
| | 11.0.5 | librca | | 11.0.5-librca
| | 8.0.232 | librca | | 8.0.232-librca
GraalVM | | 19.3.0.r11 | grl | | 19.3.0.r11-grl
| | 19.3.0.r8 | grl | | 19.3.0.r8-grl
| | 19.3.0.2.r11 | grl | | 19.3.0.2.r11-grl
| | 19.3.0.2.r8 | grl | | 19.3.0.2.r8-grl
| | 19.2.1 | grl | | 19.2.1-grl
| | 19.1.1 | grl | | 19.1.1-grl
| | 19.0.2 | grl | | 19.0.2-grl
| | 1.0.0 | grl | | 1.0.0-rc-16-grl
Java.net | | 15.ea.2 | open | | 15.ea.2-open
| | 14.ea.28 | open | | 14.ea.28-open
| | 13.0.1 | open | | 13.0.1-open
| | 12.0.2 | open | | 12.0.2-open
| | 11.0.2 | open | | 11.0.2-open
| | 10.0.2 | open | | 10.0.2-open
| | 9.0.4 | open | | 9.0.4-open
SAP | | 12.0.2 | sapmchn | | 12.0.2-sapmchn
| | 11.0.4 | sapmchn | | 11.0.4-sapmchn
================================================================================
如果想安装AdoptOpenJDK的13.0.1.hs
版本,使用下面的命令。 13.0.1.hs-adpt
是对应版本的标识符。
$ sdk install java 13.0.1.hs-adpt
安装之后,sdk
命令会提示是否设为默认JDK。Y
会把这个版本设置成默认JDK。运行java -version
检查一下。
切换默认版本
如果想切换默认的JDK版本,使用sdk default
命令。如果同时安装了其他的JDK版本,比如AdoptOpenJDK的JDK 11,可以把它设置为默认JDK。
$ sdk default java 11.0.5.hs-adpt
临时切换版本
如果只想在当前的shell中临时使用与默认JDK不同的版本,使用sdk use
命令。比如,我就是想临时试一下JDK 8,可以用下面的命令
$ sdk use java 8.0.232.hs-adpt
其它SDK
除了JDK之外,SDKMAIN!还可以安装其它Java相关的SDK,包括Scala、Kotlin、Groovy、Spring Boot、Maven、sbt和Gradle等。比如,下面的命令可以列出来全部的Maven
版本。再使用sdk install maven
进行安装即可。
$ sdk ls maven
全部可用的SDK可以在这个页面上看到,也可以使用sdk list
命令列出来。
管理当前已安装软件版本
$ sdk current #查看当前已安装的软件
$ sdk uninstall .. #卸载软件
$ sdk rm .. #卸载软件
$ sdk version #查看sdkman版本
帮助信息
# sdk help Usage: sdk <command> [candidate] [version] sdk offline <enable|disable> commands: install or i <candidate> [version] [local-path] uninstall or rm <candidate> <version> list or ls [candidate] use or u <candidate> <version> config default or d <candidate> [version] home or h <candidate> <version> env or e [init|install|clear] current or c [candidate] upgrade or ug [candidate] version or v broadcast or b help offline [enable|disable] selfupdate [force] update flush [archives|tmp|broadcast|version] candidate : the SDK to install: groovy, scala, grails, gradle, kotlin, etc. use list command for comprehensive list of candidates eg: $ sdk list version : where optional, defaults to latest stable if not provided eg: $ sdk install groovy local-path : optional path to an existing local installation eg: $ sdk install groovy 2.4.13-local /opt/groovy-2.4.13