SDKMAN是Linux环境下一款SDK多版本管理工具,可以帮助我们管理SDK多个版本。在使用的过程中,经常会出现因为网络问题导致无法安装某些SDK或者某些SDK的特定版本的问题,这里简要介绍一下解决办法。

SDKMAN目录结构

lwk@qwfys:~/.sdkman$ tree -d -L 3
.
├── archives
├── bin
├── candidates
│   ├── java
│   │   ├── 11.0.12-open
│   │   ├── 11.0.15-librca
│   │   ├── 17.0.3-librca
│   │   ├── 18.0.1.1-open
│   │   ├── 22.0.0.2.r11-grl
│   │   ├── 22.1.0.r17-grl
│   │   ├── 8.0.302-open
│   │   ├── 8.0.333-librca
│   │   └── current -> 8.0.333-librca
│   └── maven
│       ├── 3.8.5
│       ├── 3.8.6
│       └── current -> 3.8.6
├── contrib
│   └── completion
│       └── bash
├── etc
├── ext
├── src
├── tmp
│   └── out
└── var└── metadata27 directories
lwk@qwfys:~/.sdkman$

Java SDK版本

lwk@qwfys$ sdk list java
================================================================================
Available Java Versions for Linux 64bit
================================================================================Vendor        | Use | Version      | Dist    | Status     | Identifier
--------------------------------------------------------------------------------Corretto      |     | 18.0.1       | amzn    |            | 18.0.1-amzn         |     | 17.0.3.6.1   | amzn    |            | 17.0.3.6.1-amzn     |     | 17.0.0.35.1  | amzn    |            | 17.0.0.35.1-amzn    |     | 11.0.15.9.1  | amzn    |            | 11.0.15.9.1-amzn    |     | 11.0.12.7.1  | amzn    |            | 11.0.12.7.1-amzn    |     | 8.332.08.1   | amzn    |            | 8.332.08.1-amzn     Dragonwell    |     | 11.0.12.8    | albba   |            | 11.0.12.8-albba     |     | 8.8.9        | albba   |            | 8.8.9-albba         Gluon         |     | 22.1.0.1.r17 | gln     |            | 22.1.0.1.r17-gln    |     | 22.1.0.1.r11 | gln     |            | 22.1.0.1.r11-gln    GraalVM       |     | 22.1.0.r17   | grl     | installed  | 22.1.0.r17-grl      |     | 22.1.0.r11   | grl     |            | 22.1.0.r11-grl      |     | 22.0.0.2.r17 | grl     |            | 22.0.0.2.r17-grl    |     | 22.0.0.2.r11 | grl     | installed  | 22.0.0.2.r11-grl    |     | 21.3.2.r17   | grl     |            | 21.3.2.r17-grl      |     | 21.3.2.r11   | grl     |            | 21.3.2.r11-grl      |     | 21.3.1.r8    | grl     |            | 21.3.1.r8-grl       |     | 21.2.0.r8    | grl     |            | 21.2.0.r8-grl       |     | 21.1.0.r8    | grl     |            | 21.1.0.r8-grl       |     | 20.3.6.r11   | grl     |            | 20.3.6.r11-grl      |     | 20.3.3.r8    | grl     |            | 20.3.3.r8-grl       |     | 20.3.2.r8    | grl     |            | 20.3.2.r8-grl       |     | 19.3.6.r11   | grl     |            | 19.3.6.r11-grl      |     | 19.3.6.r8    | grl     |            | 19.3.6.r8-grl       Java.net      |     | 20.ea.2      | open    |            | 20.ea.2-open        |     | 20.ea.1      | open    |            | 20.ea.1-open        |     | 19.ea.27     | open    |            | 19.ea.27-open       |     | 19.ea.26     | open    |            | 19.ea.26-open       |     | 19.ea.25     | open    |            | 19.ea.25-open       |     | 19.ea.1.pma  | open    |            | 19.ea.1.pma-open    |     | 18.0.1.1     | open    | installed  | 18.0.1.1-open       |     | 11.0.12      | open    | installed  | 11.0.12-open        |     | 11.0.11      | open    |            | 11.0.11-open        |     | 11.0.10      | open    |            | 11.0.10-open        |     | 11.0.2       | open    |            | 11.0.2-open         |     | 8.0.302      | open    | installed  | 8.0.302-open        |     | 8.0.292      | open    |            | 8.0.292-open        |     | 8.0.282      | open    |            | 8.0.282-open        |     | 8.0.265      | open    |            | 8.0.265-open        Liberica      |     | 18.0.1.1.fx  | librca  |            | 18.0.1.1.fx-librca  |     | 18.0.1.1     | librca  |            | 18.0.1.1-librca     |     | 17.0.3.1.fx  | librca  |            | 17.0.3.1.fx-librca  |     | 17.0.3.1     | librca  |            | 17.0.3.1-librca     |     | 17.0.3       | librca  | local only | 17.0.3-librca       |     | 11.0.15.fx   | librca  |            | 11.0.15.fx-librca   |     | 11.0.15.1.fx | librca  |            | 11.0.15.1.fx-librca |     | 11.0.15.1    | librca  |            | 11.0.15.1-librca    |     | 11.0.15      | librca  | local only | 11.0.15-librca      |     | 8.0.333.fx   | librca  |            | 8.0.333.fx-librca   | >>> | 8.0.333      | librca  | installed  | 8.0.333-librca      |     | 8.0.332.fx   | librca  |            | 8.0.332.fx-librca   Liberica NIK  |     | 22.1.r17     | nik     |            | 22.1.r17-nik|     | 22.1.r11     | nik     |            | 22.1.r11-nik        |     | 22.0.0.2.r17 | nik     |            | 22.0.0.2.r17-nik    |     | 22.0.0.2.r11 | nik     |            | 22.0.0.2.r11-nik    |     | 21.3.2.r17   | nik     |            | 21.3.2.r17-nik      |     | 21.3.2.r11   | nik     |            | 21.3.2.r11-nik      |     | 21.2         | nik     |            | 21.2-nik            |     | 21.1         | nik     |            | 21.1-nik            |     | 21.0.0.2.r11 | nik     |            | 21.0.0.2.r11-nik    |     | 21.0.0.2     | nik     |            | 21.0.0.2-nik        Mandrel       |     | 22.1.0.0.r17 | mandrel |            | 22.1.0.0.r17-mandrel|     | 22.1.0.0.r11 | mandrel |            | 22.1.0.0.r11-mandrel|     | 22.0.0.2.r17 | mandrel |            | 22.0.0.2.r17-mandrel|     | 22.0.0.2.r11 | mandrel |            | 22.0.0.2.r11-mandrel|     | 21.3.2.0.r17 | mandrel |            | 21.3.2.0.r17-mandrel|     | 21.3.2.0.r11 | mandrel |            | 21.3.2.0.r11-mandrel|     | 21.3.1.1.r17 | mandrel |            | 21.3.1.1.r17-mandrel|     | 21.3.1.1.r11 | mandrel |            | 21.3.1.1.r11-mandrel|     | 21.3.1.0.r17 | mandrel |            | 21.3.1.0.r17-mandrel|     | 21.3.1.0.r11 | mandrel |            | 21.3.1.0.r11-mandrel|     | 21.3.0.0     | mandrel |            | 21.3.0.0-mandrel    |     | 21.2.0.2     | mandrel |            | 21.2.0.2-mandrel    |     | 20.3.3.0     | mandrel |            | 20.3.3.0-mandrel    Microsoft     |     | 17.0.3       | ms      |            | 17.0.3-ms           |     | 11.0.15      | ms      |            | 11.0.15-ms          Oracle        |     | 18.0.1       | oracle  |            | 18.0.1-oracle       |     | 17.0.3       | oracle  |            | 17.0.3-oracle       SapMachine    |     | 18.0.1.1     | sapmchn |            | 18.0.1.1-sapmchn    |     | 17.0.3       | sapmchn |            | 17.0.3-sapmchn      |     | 17.0.3.0.1   | sapmchn |            | 17.0.3.0.1-sapmchn  |     | 17.0.2       | sapmchn |            | 17.0.2-sapmchn      |     | 11.0.15      | sapmchn |            | 11.0.15-sapmchn     |     | 11.0.15.0.1  | sapmchn |            | 11.0.15.0.1-sapmchn |     | 11.0.14      | sapmchn |            | 11.0.14-sapmchn     |     | 11.0.14.1    | sapmchn |            | 11.0.14.1-sapmchn   Semeru        |     | 18.0.1.1     | sem     |            | 18.0.1.1-sem        |     | 17.0.3       | sem     |            | 17.0.3-sem          |     | 11.0.15      | sem     |            | 11.0.15-sem         |     | 8.0.332      | sem     |            | 8.0.332-sem         Temurin       |     | 18.0.1       | tem     |            | 18.0.1-tem          |     | 17.0.3       | tem     |            | 17.0.3-tem          |     | 11.0.15      | tem     |            | 11.0.15-tem         |     | 8.0.332      | tem     |            | 8.0.332-tem         Trava         |     | 11.0.9       | trava   |            | 11.0.9-trava        |     | 8.0.232      | trava   |            | 8.0.232-trava       Zulu          |     | 18.0.1       | zulu    |            | 18.0.1-zulu         |     | 18.0.1.fx    | zulu    |            | 18.0.1.fx-zulu      |     | 17.0.3       | zulu    |            | 17.0.3-zulu         |     | 17.0.3.fx    | zulu    |            | 17.0.3.fx-zulu      |     | 11.0.15      | zulu    |            | 11.0.15-zulu        |     | 11.0.15.fx   | zulu    |            | 11.0.15.fx-zulu     |     | 8.0.332      | zulu    |            | 8.0.332-zulu        |     | 8.0.332.fx   | zulu    |            | 8.0.332.fx-zulu     |     | 7.0.342      | zulu    |            | 7.0.342-zulu        |     | 6.0.119      | zulu    |            | 6.0.119-zulu
================================================================================
Omit Identifier to install default version 17.0.3-tem:$ sdk install java
Use TAB completion to discover available versions$ sdk install java [TAB]
Or install a specific version by Identifier:$ sdk install java 17.0.3-tem
Hit Q to exit this list view
================================================================================
(END)
q
lwk@qwfys:~$

Maven版本

lwk@qwfys:~$ sdk list maven
================================================================================
Available Maven Versions
================================================================================> * 3.8.6               3.3.3                                                  * 3.8.5               3.3.1                                                  3.8.4               3.2.5                                                  3.8.3               3.2.3                                                  3.8.2               3.2.2                                                  3.8.1               3.2.1                                                  3.6.3               3.1.1                                                  3.6.2               3.1.0                                                  3.6.1               3.0.5                                                  3.6.0               3.0.4                                                  3.5.4                                                                      3.5.3                                                                      3.5.2                                                                      3.5.0                                                                      3.3.9                                                                      ================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
(END)
q
lwk@qwfys:~$

看到这里,我们发现了一个技巧,那就是目录{SDKMAN_HOME}/candidates中的文件结构是{SDK}/{VERSION}这样的形式,如果目标下面有多个版本,软链接current指向我们期望设置的当前版本。

比说,maven当前版本是3.8.6,那么目录{SDKMAN_HOME}/candidates/maven中的current就指向3.8.6这个目录,即:

lwk@qwfys:~/.sdkman/candidates/maven$ ll
total 16
drwxrwxr-x 4 lwk lwk 4096 Jun 24 10:56 ./
drwxrwxr-x 4 lwk lwk 4096 Jun  6 15:12 ../
drwxr-xr-x 6 lwk lwk 4096 Mar  5 11:30 3.8.5/
drwxr-xr-x 6 lwk lwk 4096 Jun  6 16:16 3.8.6/
lrwxrwxrwx 1 lwk lwk    5 Jun 24 10:56 current -> 3.8.6/
lwk@qwfys:~/.sdkman/candidates/maven$

同样的,Java当前版本是Liberica提供的JDK 8.0.33,代号8.0.333-librca,即

Liberica             | >>> | 8.0.333      | librca  | installed  | 8.0.333-librca

那么目录{SDKMAN_HOME}/candidates/java中的current就指向8.0.333-librca这个目录,即:

lwk@qwfys:~/.sdkman/candidates/java$ ll
total 40
drwxrwxr-x 10 lwk lwk 4096 Jun 24 09:16 ./
drwxrwxr-x  4 lwk lwk 4096 Jun  6 15:12 ../
drwxrwxr-x 10 lwk lwk 4096 Jul 15  2021 11.0.12-open/
drwxrwxr-x  9 lwk lwk 4096 Apr 20 12:53 11.0.15-librca/
drwxrwxr-x  9 lwk lwk 4096 Apr 19 14:03 17.0.3-librca/
drwxrwxr-x  8 lwk lwk 4096 Jun  6 16:42 18.0.1.1-open/
drwxrwxr-x 10 lwk lwk 4096 Jun  8 17:46 22.0.0.2.r11-grl/
drwxrwxr-x 10 lwk lwk 4096 Jun  6 17:10 22.1.0.r17-grl/
drwxrwxr-x  9 lwk lwk 4096 Jul 16  2021 8.0.302-open/
drwx------  9 lwk lwk 4096 May 31 18:43 8.0.333-librca/
lrwxrwxrwx  1 lwk lwk   14 Jun 24 09:16 current -> 8.0.333-librca/
lwk@qwfys:~/.sdkman/candidates/java$

如此以来,我们只要通过其他手段将目标SDK对应版本按照上述规律放到目录{SDKMAN_HOME}/candidates/{SDK}/{VERSION}中,并在目录{SDKMAN_HOME}/candidates中的文件结构是{SDK}中创建软链接,指向期待的版本即可。这种方式与直接使用命令
sdk {sdk} default {VERSION}的效果是一样的。

举例说明,我现在想将Java SDK版本设置为8.0.332-zulu,用命令是

sdk java default 8.0.332-zulu

相当于在目录{SDKMAN_HOME}/candidates/java中,用软链接current指向了目录8.0.332-zulu,而8.0.332-zulu中则是zulu为我们提供的JDK的8.0.332版本。

SDKMAN因为网络问题用不了怎么办?相关推荐

  1. 使用SDKMAN包管理器,在BSD-Unix系统上快捷安装软件(MacOS/OpenBSD/Solaris)

    1. 第一步 安装软件 # 第一步 使用如下命令安装软件 ,国内网络可能不通,可以使用VPN $ curl -s "https://get.sdkman.io" | bash 2. ...

  2. 常规设置——SDKMAN

    一.安装 [root@master ~]# yum install zip unzip -y [root@master ~]#curl -s "https://get.sdkman.io&q ...

  3. Sdkman运行时INTERNET NOT REACHABLE问题和解决

    sdkman安装后,运行时,出现INTERNET NOT REACHABLE问题,如下图: 前提: 网络是通的,ping能用,aptitude能用: /etc/resov.conf配置了dns nam ...

  4. SDKMAN 软件开发工具包管理器

    SDKMAN 是用来在类Unix 系统中管理多个版本的开发环境的工具.提供命令行接口来安装.切换.删除.列出候选版本. SDKMAN!是在大多数基于Unix的系统上管理多个软件开发套件的并行版本的工具 ...

  5. 苹果设备iphone,ipad,macbook网络连接慢,开机开什么卡什么,一步解决

    苹果电脑网络连接慢,开机开什么卡什么??? 网络上的方法一种种,没有一个适用的? 如果你的macbook也是打开就没网,但有一些软件也能用,就是浏览器加载跑条儿,不妨试试! 系统偏好设置-网络-高级- ...

  6. 大数据学习01——配置虚拟机节点相关网络

    1.配置mac地址和ip (1)更改适配器设置 找到这个后开始设置windows中的网络连接 (2)接着对三台虚拟机的mac地址和ip进行设置 1.mac地址设置 进入linux节点中的这个位置进行设 ...

  7. 【Docker】容器的几种网络模式

    当你使用Docker时,你会发现需要了解很多关于网络的知识.Docker作为目前最火的轻量级容器引擎,因此,我们有必要深入了解Docker的网络知识,以满足更高的网络需求.本文介绍了Docker的4种 ...

  8. 2022-2028年中国网络直播行业深度调研及投资前景预测报告

    [报告类型]产业研究 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了网络直播行业相关概述.中国网络直播行业运行环境.分析了中国网络直播行 ...

  9. Redis 笔记(15)— 管道 pipeline(客户端将批量命令打包发送用来节省网络开销)

    Redis 是一种基于客户端-服务端模型以及请求/响应协议的 TCP 服务.这意味着通常情况下一个请求会遵循以下步骤: 客户端向服务端发送一个查询请求,并监听 Socket 返回,通常是以阻塞模式,等 ...

最新文章

  1. wampserver下升级php7
  2. 如何使用Mockito模拟void方法
  3. 1.2机器学习基础下--python深度机器学习
  4. 在el-table中使用el-popover,没法点击确定或取消来关闭
  5. traybox错误怎么办_toolbox提示错误无法使用怎么办?
  6. list循环赋值_Python基础 | 0xd 条件判断与循环
  7. 喜马拉雅 Apache RocketMQ 消息治理实践
  8. Kubernetes-NodePort(十七)
  9. windows 本地搭建git仓库_Windows系统下搭建Git本地代码库
  10. frontend-tools
  11. 现代通信原理4.3:白噪声
  12. PHPStrom 快捷键
  13. vit transformer中的cls_token
  14. byte java 详解_详解java中的byte类型
  15. ADV7441驱动EDID配置及声音问题
  16. 科学计算机如何进行复数运算,教你如何用你的卡西欧学生计算器进行复数运算!...
  17. FullCalendar说明文档
  18. 起点中文网 字体反爬技术 网页可以显示数字字母 网页代码是乱码或空格
  19. 福建厦门双十计算机竞赛,22人夺一等奖!恭喜厦门一中、双十中学、实验中学...
  20. 设置每天定时给自己发送邮件、企业微信提醒

热门文章

  1. 菠萝V1一经问世将会掀起怎样的惊涛骇浪?
  2. 六套苹果CMSv10首涂手机视频站模板高端主题代码精简优化SEO
  3. 介绍一个牛逼的Github项目
  4. 密码学七:MD5算法
  5. deepin-wine的安装
  6. HENU 1062 luerの切割(2018哈理工程序设计原题)
  7. deepin 服务器_深度官方并没有提供Deepin服务器版下载,也没有开发计划
  8. mysql orderby asc_MySQL 数据排序 order by
  9. 用bootstrap写一个简洁的网页
  10. html5 舰c 手机,我国最新款导弹驱逐舰052D,主力战舰的不二之选,中国厉害了!...