使用 SDKMAN 管理多版本本地 Java 环境---Centos8 Windows

news2024/11/23 20:14:07

文章目录

    • 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 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 列表
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(四)基于高尔夫优化算法GOA求解无人机三维路径规划研究(MATLAB代码)

一、无人机模型简介: 单个无人机三维路径规划问题及其建模_IT猿手的博客-CSDN博客 参考文献: [1]胡观凯,钟建华,李永正,黎万洪.基于IPSO-GA算法的无人机三维路径规划[J].现代电子技术,2023,46(07):115-120 二、高尔夫优化算法GOA简介 高尔夫优化算法…

C语言二叉树与堆的实现(一)

目录 二叉树 二叉树的分类(目前只谈两种) 满二叉树 完全二叉树 二叉树的性质(其余的可以自己总结) 选择练习 二叉树的存储结构 顺序存储方式 链式存储方式 一种完全二叉树:堆 堆的概念 堆的性质 建堆的时…

如何在服务器上运行python文件

目录 前置准备 详细步骤 一,在服务器安装Anaconda 下载安装包 上传文件到服务器 安装环境 二,创建虚拟环境 创建环境 三,测试执行python文件 执行python文件 查看进程状态 总结 前置准备 如何在个人服务器上运行python文件&#x…

熟悉SVN基本操作-(SVN相关介绍使用以及冲突解决)

一、SVN相关介绍 1、SVN是什么? 代码版本管理工具它能记住你每次的修改查看所有的修改记录恢复到任何历史版本恢复已经删除的文件 2、SVN跟Git比,有什么优势 使用简单,上手快目录级权限控制,企业安全必备子目录checkout,减少…

vivado实现分析与收敛技巧2-创建智能设计运行

智能设计运行 (IDR) 是基于标准实现运行创建的。在“ Design Runs ” ( 设计运行 ) 窗口中 , 右键单击实现运行 , 然后选择“Close Timing using Intelligent Design Runs ” ( 使用智能设计运行收敛时序 &#xff09…

深度学习手势检测与识别算法 - opencv python 计算机竞赛

文章目录 0 前言1 实现效果2 技术原理2.1 手部检测2.1.1 基于肤色空间的手势检测方法2.1.2 基于运动的手势检测方法2.1.3 基于边缘的手势检测方法2.1.4 基于模板的手势检测方法2.1.5 基于机器学习的手势检测方法 3 手部识别3.1 SSD网络3.2 数据集3.3 最终改进的网络结构 4 最后…

C++调用python: VS2017 + Anaconda + pypi第三方库

步骤一:在Anaconda中创建虚拟环境 这一点对大家来说应该很简单,简单介绍一下,不做过多解释。值得注意的是,要用conda命令创建环境,用pip install配置环境。 conda create -n c_python_env python3.9 # 用conda创建pyt…

Java 的第二十章:多线程

创建线程 继承Thread 类 Thread 类时 java.lang 包中的一个类,从类中实例化的对象代表线程,程序员启动一个新线程需要建立 Thread 实例。 Thread 对象需要一个任务来执行,任务是指线程在启动时执行的工作,start() 方法启动线程&am…

Docker 使用心得

创建一个docker 镜像,相关运行代码,放在docker镜像文件同级, pm2 不能与 docker一起使用() # node 服务docker FROM node:10.16.3LABEL author"sj"RUN mkdir -p /var/nodeCOPY ./node /var/nodeWORKDIR /va…

Vue实现图片预览(Viewer.js)

摘要: vue项目开发中遇到一个图片预览的需求,可以切换下一张,就是花里胡哨的,所以找viewer.js的插件 npm install v-viewer -S在项目main.js中加入: Viewer.setDefaults用于更改默认配置,比如我不想要显示…

基于AT89C51单片机的倒数计时器设计

1.设计任务 利用AT89C51单片机为核心控制元件,设计一个简易的数字电压表,设计的系统实用性强、操作简单,实现了智能化、数字化。 本设计采用单片机为主控芯片,结合周边电路组成LED彩灯的闪烁控制系统器,用来控制红色…

Paraformer 语音识别原理

Paraformer(Parallel Transformer)非自回归端到端语音系统需要解决两个问题: 准确预测输出序列长度,送入预测语音信号判断包含多少文字。 如何从encoder 的输出中提取隐层表征,作为decoder的输入。 采用一个预测器(Predictor&…

【Node.js】笔记整理 5 - Express框架

写在最前:跟着视频学习只是为了在新手期快速入门。想要学习全面、进阶的知识,需要格外注重实战和官方技术文档,文档建议作为手册使用 系列文章 【Node.js】笔记整理 1 - 基础知识【Node.js】笔记整理 2 - 常用模块【Node.js】笔记整理 3 - n…

IDEA maven无法下载源代码处理

1、使用idea内置maven 在idea中新增一个mvn运行项,截图如下: 输入命令: dependency:resolve -Dclassifiersources 2、如果外部maven,不使用idea内部maven 在工程目录下命令行执行命令: mvn dependency:resolve -Dclassifiersources

HX3002入耳检测光感驱动调试-感0x08 寄存器溢出,不变化错误问题解决方法

是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资料, 读取光感0x08 寄存器溢出,不变化错误问题?原因 原因:没有读取到0x08数据,没有读0x…

2的幂运算

2的幂 描述 : 给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。 如果存在一个整数 x 使得 n 2x ,则认为 n 是 2 的幂次方。 题目 : LeetCode 231.2的幂 : 231. 2 的幂 分…

vue3实现element table缓存滚动条

背景 对于后台管理系统,数据的展示形式大多都是通过表格,常常会出现的一种场景,从表格跳到二级页面,再返回上一页时,需要缓存当前的页码和滚动条的位置,以为使用keep-alive就能实现这两种诉求,…

centos服务器安装docker和Rabbitmq

centos服务器 一 centos安装docker1 安装docker所需要的依赖包2配置yum源3查看仓库中所有的docker版本4安装docker5 设置docker为开机自启6验证docker是否安装成功 二 使用docker安装RabbitMQ拉取RabbitMQ镜像创建并运行容器 一 centos安装docker 1 安装docker所需要的依赖包 …

RocketMQ-快速实战

MQ简介 MQ:MessageQueue,消息队列。是在互联网中使用非常广泛的一系列服务中间件。 Message:消息。消息是在不同进程之间传递的数据。这些进程可以部署在同一台机器上,也可以分布在不同机器上。(数据形式&#xff1a…