1、背景
使用过Python开发的朋友,应该了解到Python2和Python3语法的差异,有时候从网上下载了基于不同解释器的代码,要来回切换版本,
使用起来不是很方便,有时候甚至很麻烦。于是有人发明了Conda,可以灵活切换版本。
本文要介绍的工具与Conda类似,名字叫SDKMAN,也可以灵活切换JDK版本。比如笔者最近从网上下载了一个源代码,编译时基于JDK11
,本地没安装,对于JDK11不熟,又怕破坏本地环境变量,于是就有了这个尝试。
SDKMAN支持以下JDK厂商及产品:
亚马逊
Corretto
Oracle
GraalVM 下一代新型SDK集成环境
Liberica
Bellsoft(与IDEA有合作)
OpenJDK
AdoptOpenJDK(JVM引擎可选项:OpenJDK HotSpot 、 Eclipse OpenJ9)
OpenJDK
jdk.java.net
SapMachine
SAP(the JCP Executive committee 专家组成员开发的分支)
Zulu
Azul Systems(商用级JDK)
2、摘要
SDK是一个基于命令行(Command Line Interface)用户界面的程序,太能在类Unix的平台上运行(Mac OSX, Linux, Cygwin, Solaris 、 FreeBSD)
该工具依赖于curl、unzip、zip。安装依赖命令如下
sudo apt install curl zip unzip
如果出现以下界面说明你本地环境缺少依赖。
安装方法
curl -s "https://get.sdkman.io" | bash
安装到自定义位置
$ export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash
安装截图
然后打开一个新的终端执行:
source "/home/nginx/.sdkman/bin/sdkman-init.sh"
查看工具版本
sdk version
Windows上也可以安装,需要依赖Cygwin或者Windows10的WLS子系统,笔者没有去测试
卸载方法
tar zcvf ~/sdkman-backup_$(date +%F-%kh%M).tar.gz -C ~/ .sdkman
$ rm -rf ~/.sdkman
其次执行以下步骤,打开.bashrc,.bash_profile甚至是profile删除以下内容,如果使用zsh,从.zshrc删除以下类似内容
#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"
支持的软件库(这里应该是开源项目库,类似于maven)
sdk list
比如查询springboot,输入/spring
查看springboot
sdk list springboot
比如安装springboot 2.0.2(这里和Conda功能类似)
sdk install springboot 2.0..RELEASE
卸载
sdk uninstall springboot 2.0..RELEASE
使用特定版本的jar包
sdk use springboot 2.0..RELEASE
安装JAVA SDK
java的安装也可以使用以上方式
查看支持的java版本
sdk list java
安装命令格式
亚马逊Corretto
sdk install java x.y.z-amzn
Oracle GraalVM
sdk install java x.y.z-grl
Liberica Bellsoft
sdk install java x.y.z-librca
OpenJDK AdoptOpenJDK
sdk install java x.y.z-adpt
OpenJDK jdk.java.net
sdk install java x.y.z-open
SapMachine SAP
sdk install java x.y.z-sapmchn
Zulu Azul Systems
sdk install java x.y.z-zulu
以下我们来安装ZuLu 8.0.232
sdk install java 8.0.-zulu
本文的命令大量参照/转载自:https://www.jianshu.com/p/8597c22550a6