使用 SDKMAN 管理多版本本地 Java 环境---Centos8 Windows
文章目录
- windows 安装
- centos8 安装
- 卸载sdkman
- 使用
windows 安装
SDKMAN是一个 jdk 多版本管理工具,类似于 nodejs 中的 nvm。可以在本地存在多个 java 环境,快速切换功能,同时,他不止于 java sdk,还有maven、tomcat等等。
目前 windows 有两种安装方式:
1、WSL:需要先安装适用于 linux 的 windows 子系统(WSL),同时还需要基本的工具集(bash、zip、unzip、curl)
2、git bash:如果使用 Git Bash for Windows,则需要使用 MinGW 对其进行补充,以获得 SDKMAN 所需的工具集。这种方法存在一些问题,但它在大多数情况下都有效。
git 是大多数同学会使用的到的工具,尤其是在多版本控制以及多人协同场景下,所以本文将以第二种方式进行安装
curl -V
unzip -v
sed --version
zip -v
通常,git 会给我们默认集成 curl
、unzip
、sed
,所以我们还需要手动下载 zip
。
来到 zip
下载地址,直接点击 zip-3.0-bin.zip
就开始下载了,下载完毕后解压将 bin
目录下的 zip.exe
文件复制到 git 安装目录下的 mingw64/bin
目录下。由于 zip
依赖于 bzip2
,我们还需要用到 bzip2
中的一个扩展 bzip2.dll
。所以我们还需要去这里安装下载 bzip2-1.0.5-bin0zip
,下载完成后,将 bin 目录下的 bzip2.dll
文件复制到 git 安装目录下的 mingw64/bin
目录下。然后重新打开 git bash ,使用 git -v
检查是否出现版本号,如果出现版本号即安装成功,就可以进入下一步了。
# 安装 sdkman---git bash -- 由于网络关系,这里需要多次尝试
curl -s "https://get.sdkman.io" | bash
这里注意一下,如果下载失败了,就需要执行下面的命令将已有的 sdkman 文件夹给删除(卸载),否则将会提示你已经安装了 sdkman 了。
# 将 sdkman 添加到 PATH 中
source "$HOME/.sdkman/bin/sdkman-init.sh"
可以用了~
sdkman 下载的内容都会存储在 C/用户/xxx/.sdkman/candidates
目录下
比如下载 Gradle
,下载后的目录将为 C/用户/xxx/.sdkman/candidates/gradle
如果说想要在 IDEA
中使用的话就直接在 IDEA 中导入 sdk 即可。
最后需要注意的是:sdk 命令只能在 git bash
中使用,在 cmd 或者 power shell
中使用是会报错的。
centos8 安装
在 linux 中安装比较简单,安装成功的概率也比较大
curl -s "https://get.sdkman.io" | bash
# 出现以下内容表示安装成功---如果没有出现以下内容就需要卸载了再来一遍(卸载命令在下面)
All done!
You are subscribed to the STABLE channel.
Please open a new terminal, or run the following in the existing one:
source "/root/.sdkman/bin/sdkman-init.sh"
Then issue the following command:
sdk help
Enjoy!!!
# 配置环境变量
source "$HOME/.sdkman/bin/sdkman-init.sh"
# 查看是否安装成功
sdk version
# 出现版本号即可安装成功
SDKMAN!
script: 5.18.2
native: 0.4.3
卸载sdkman
tar zcvf ~/sdkman-backup_$(date +%F-%kh%M).tar.gz -C ~/ .sdkman
rm -rf ~/.sdkman
[[ -s "/home/dudette/.sdkman/bin/sdkman-init.sh" ]] && source "/home/dudette/.sdkman/bin/sdkman-init.sh"
使用
# 列出可下载的 java 版本
sdk list java
# 下载指定版本 jdk
sdk install java xxx
# 卸载指定版本 jdk
sdk uninstall java xxx
# 设置默认 jdk
sdk default java $Identifier
# 使用某个版本 jdk
sdk use java xxx
# 查看当前使用 jdk
sdk current java
# 启动离线模式
sdk offline enable
查看可下载 Java 列表