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

最新文章

  1. mac rvm升级ruby
  2. 书写高效的CSS
  3. c#初学-多线程中lock用法的经典实例
  4. nodejs模仿http请求组件nodegrass简单例子
  5. Android-Activity使用(2) -传值
  6. Windows 10 Java环境变量配置
  7. 【linux】修改文件所属用户和组
  8. [转]World Wind Java开发之四——搭建本地WMS服务器
  9. 学会使用Chromium中的LOG
  10. Linux下如何查看自己的服务器有没有无线网卡
  11. WebSphere中对response.sendError()的处理与Tomcat不同
  12. XCode修改工程名注意
  13. JavaScript的OOP编程1
  14. PHP_EOL常量
  15. ARCGIS接口详细说明
  16. POJ 1256.Anagram
  17. JavaSE教程-03深入探究原码,反码,补码-扩展
  18. 【Spring实战】--1Spring的核心
  19. Dynamics CRM2016 业务流程之Task Flow(二)
  20. L2-007 家庭房产 (25 分) (并查集)

热门文章

  1. httprunner学习22-正则表达式提取(extract)与校验(validate)
  2. JQuery系列(6) - jQuery设计思想
  3. Nginx——配置文件服务下载
  4. LeetCode 1110. Delete Nodes And Return Forest
  5. [转载] miller rabin
  6. PHP入门之调试
  7. 第02组 Alpha冲刺(3/4)
  8. mysql课外积累
  9. R语言中的管道操作符 %>% %T>% %$% %<>%
  10. NSGA-II算法学习