使用 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 会给我们默认集成 curlunzipsed,所以我们还需要手动下载 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 了。

image-20231125135337494

# 将 sdkman 添加到 PATH 中
source "$HOME/.sdkman/bin/sdkman-init.sh"

可以用了~

image-20231125135411848

image-20231125154632218

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 helpEnjoy!!!# 配置环境变量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 列表
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/236052.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何安装RAD Studio 12(delphi 12)

如何安装RAD Studio 12(delphi 12) RAD Stuido 12 Athens How to install RAD Studio 12 29.0.50491.5718 InterBase 2020 14.5.0.864(x64) 14.5.0.864(x86) Download: http://altd.embarcadero.com/download/radstudio/12.0/RADStudio_12_0_49157…

血的教训---入侵redis并免密登录redis所在服务器漏洞复现

血的教训—入侵redis并免密登录redis所在服务器漏洞复现 今天就跟着我一起来入侵redis并免密登录redis所在服务器吧,废话不多说,我们直接开始吧。 这是一个体系的学习步骤,当然如果基础扎实的话可以继续往下面看 以下都是关联的文章&#xff…

华为云之一键安装宝塔面板

华为云之一键安装宝塔面板 一、本次实践介绍1.1 实践环境简介1.2 本次实践目的 二、宝塔面板介绍三、环境准备工作3.1 预置实验环境3.2 查看环境信息3.3 登录华为云3.4 查看弹性云服务器状态3.5 ssh登录弹性云服务器3.6 查看操作系统版本 四、安装宝塔面板4.1 一键部署宝塔面板…

【古月居《ros入门21讲》学习笔记】05_ROS是什么及其核心概念

目录 说明 1. ROS发展史 ROS版本演变 2. ROS是什么 ROS中的通信机制 ROS中的开发工具 ROS中的应用功能 ROS中的生态系统 3. ROS核心概念 节点与节点管理器 通信方式1:话题 通信方式2:服务 话题与服务的区别 参数 文件系统 说明 1. 本系列…

深入理解Zookeeper系列-2.Zookeeper基本使用和分布式锁原理

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码、Kafka原理、分布式技术原理🔥如果感觉博主的文章还不错的话&#xff…

nginx部署多个vue或react项目

下载nginx(tar.gz) nginx: download(官方地址) 部署nginx # 进入nginx压缩包所在目录 cd /usr/nginx# 解压 tar -zxvf nginx-1.25.3.tar.gz# 安装nginx的相关依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel# 生成Makefile可编译文件 cd /usr/ng…

flutter开发实战-轮播Swiper更改Custom_layout样式中Widget层级

flutter开发实战-轮播Swiper更改Custom_layout样式中Widget层级 在之前的开发过程中,需要实现卡片轮播效果,但是卡片轮播需要中间大、两边小一些的效果,这里就使用到了Swiper。具体效果如视频所示 添加链接描述 这里需要的效果是中间大、两边…

No matching version found for @babel/compat-data@^7.23.5 处理

npm ERR! notarget No matching version found for babel/compat-data^7.23.5 处理 报错信息 npm WARN ERESOLVE overriding peer dependency npm ERR! code ETARGET npm ERR! notarget No matching version found for babel/compat-data^7.23.5. npm ERR! notarget In most …

变速箱壳体铸造件自动化三维测量室厂家自动化检测偏差比对-CASAIM-IS(2ND)

一、背景介绍: 随着制造业的快速发展,对产品质量和生产效率的要求不断提高。壳体铸造件作为一种常见的机械零部件,广泛应用于各个领域,对壳体铸造件的质量可靠性的要求也越来越高,因此,对壳体铸造件进行精…

单链表相关经典算法OJ题:移除链表元素

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 题目:移除链表元素 解法一: 解法一的代码实现: 解法二: 解法二代码的实现: 总结 前言 世上有两种耀眼的…

Python 进阶(十二):随机数(random 模块)

《Python入门核心技术》专栏总目录・点这里 文章目录 1. 导入random库2. 常用随机数函数2.1 生成随机浮点数2.2 生成随机整数2.3 从序列中随机选择2.4 随机打乱序列3. 设置随机数种子4. 应用实例4.1 游戏开发4.2 数据分析4.3 加密与安全4.4 模拟实验5. 总结大家好,我是水滴~~ …

长沙电信大楼火灾调查报告发布:系烟头引发。FIS来护航安全

近日,长沙电信大楼的火灾调查报告引起广泛关注。调查发现,火灾是由未熄灭的烟头引发,烟头点燃了室外平台的易燃物,迅速蔓延至整个建筑。这起悲剧再次提醒我们,小小的疏忽可能酿成大灾难。但如果我们能及时发现并处理这…