SDKMAN一个基于命令行界面的SDK用户环境管理程序

时间:2021-09-17 15:45:20

SDKMAN一个基于命令行界面的SDK用户环境管理程序

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

如果出现以下界面说明你本地环境缺少依赖。

SDKMAN一个基于命令行界面的SDK用户环境管理程序

安装方法

curl -s "https://get.sdkman.io" | bash

安装到自定义位置

$ export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash

安装截图

SDKMAN一个基于命令行界面的SDK用户环境管理程序

SDKMAN一个基于命令行界面的SDK用户环境管理程序

然后打开一个新的终端执行:

source "/home/nginx/.sdkman/bin/sdkman-init.sh"

查看工具版本

sdk version

SDKMAN一个基于命令行界面的SDK用户环境管理程序

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

SDKMAN一个基于命令行界面的SDK用户环境管理程序

比如查询springboot,输入/spring

SDKMAN一个基于命令行界面的SDK用户环境管理程序

查看springboot

sdk list springboot

SDKMAN一个基于命令行界面的SDK用户环境管理程序

比如安装springboot 2.0.2(这里和Conda功能类似)

sdk install springboot 2.0..RELEASE

SDKMAN一个基于命令行界面的SDK用户环境管理程序

卸载

sdk uninstall springboot 2.0..RELEASE

SDKMAN一个基于命令行界面的SDK用户环境管理程序

使用特定版本的jar包

sdk use springboot 2.0..RELEASE

SDKMAN一个基于命令行界面的SDK用户环境管理程序

安装JAVA SDK

java的安装也可以使用以上方式

查看支持的java版本

sdk list java

SDKMAN一个基于命令行界面的SDK用户环境管理程序

安装命令格式

亚马逊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

SDKMAN一个基于命令行界面的SDK用户环境管理程序

本文的命令大量参照/转载自:https://www.jianshu.com/p/8597c22550a6