SDK 多版本管理控制利器 SDKMAN 介绍及使用

news2025/1/11 14:56:17

一、SDKMAN

假如你同时参与了一个使用JDK 8的项目和一个采用JDK 17特性的项目。每次在两个项目之间切换时,你都面临着版本冲突的问题。如果有那么一个工具类似于 Python 中的 anaconda 工具,可以帮助你管理不同版本的 SDK ,是不是非常有用,那 SDKMAN 就可以帮你实现。

SDKMAN 是一款面向Java开发者的命令行工具,旨在简化Unix系统上SDKs的管理。它支持跨平台使用,提供便捷的版本控制和切换功能,通过维护候选SDK列表,让用户能够轻松安装、更新和卸载各类软件开发工具包。SDK 支持如 Java,Groovy,Scala,Kotlin、Ceylon,也支持Maven,Gradle,SBT,Spring Boot,Vert.x 等。

二、Windows 安装

目前 Windows 有两种安装方式,WSLGit Bash 的方式,Git 大家电脑中应该都有安装,因此下面基于 Git Bash 进行安装 SDKMAN

首先安装 SDKMAN 会使用到 unzip、zip、curl、sed 命令,默认 Git 包含了 unzip、curl、sed 但缺少 zip

在这里插入图片描述

因此这里需要为 Git 集成 zip 命令,首先下载 zip 包:

https://sourceforge.net/projects/gnuwin32/files/zip/3.0/

在这里插入图片描述

下载后,将解压后 bin 目录下的 zip.exe 拷贝到 Git 安装目录下 mingw64/bin 目录下:

在这里插入图片描述

同时 zip 还依赖 bzip2 ,因此还要下载 bzip2 包:

https://sourceforge.net/projects/gnuwin32/files/bzip2/1.0.5/

在这里插入图片描述

下载后,将解压后 bin 目录下的 bzip2.dll 拷贝到 Git 安装目录下 mingw64/bin 目录下:

在这里插入图片描述

然后再次尝试 zip 命令,可以看到已经可以了:

在这里插入图片描述

下面开始下载安装 SDKMAN ,在 Git Bash 中执行如下操作:

curl -s "https://get.sdkman.io" | bash

在这里插入图片描述
安装完成后,将 SDKMAN 添加到环境变量中:

source "$HOME/.sdkman/bin/sdkman-init.sh"

在这里插入图片描述

验证环境:

sdk version

在这里插入图片描述

三、SDKMAN 使用

3.1 查看所有可用的SDK

sdk list

在这里插入图片描述
可以看到可以安装非常多的应用,而不限于 JDK

3.2 查看所有指定类型可用的SDK

sdk list java

在这里插入图片描述

3.3 安装指定类型版本的SDK

sdk install java 21.0.2-open

在这里插入图片描述

3.4 切换并使用指定类型版本的SDK

sdk use java 21.0.2-open

在这里插入图片描述

验证 java 版本:

java --version

在这里插入图片描述

3.5 设置默认版本

sdk default java 21.0.2-open

在这里插入图片描述

3.6 查看当前使用的 SDK

sdk current

在这里插入图片描述

3.7 查看当前使用的指定类型的 SDK

sdk current java

在这里插入图片描述

3.8 查看 SDK 安装目录

sdk home java 21.0.2-open

在这里插入图片描述

3.8 卸载指定类型版本的SDK

sdk uninstall java 21.0.2-open

3.9 升级 SDKMAN

sdk selfupdate

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

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

相关文章

【32单片机篇】项目:LCD实时显示温湿度

一、项目需求 使用 ESP8266 连接 OneNET 云平台,并通过 MQTT 协议上传 DHT11 获取的温湿度值。 二、项目框图 三、硬件部分 四、项目源码及实现 1.项目源码 https://gitee.com/GeekerGao/upload-the-temperature-and-humidity-to-OneNET 2.项目实现

C语言 之 理解数组(8)数组和指针相关的题目 详细解答 快来观看

文章目录 1. 数组和指针相关题1.1 一维数组1.2 字符数组代码1代码2代码3代码4代码5代码6 1.3 二维数组 1. 数组和指针相关题 这里主要讲解的是通过sizeof和strlen来对数组和指针进行更深入的一些了解,建议有兴趣与初学者可以先尝试自己思考来完成。 1.1 一维数组 …

GPT-Pilot —— 让AI来写代码

1.概述 什么是GPT-Pilot? 一个AI开发者伴侣,可以从0开始构建应用程序,可以自己编写代码、配置开发环境、管理开发任务、调试代码。 项目地址:https://github.com/Pythagora-io/gpt-pilot 不仅仅是一个自动完成功能或 PR 消息的助…

CSP-J 2022 读程题16.答案与解析

知识点 普及 逻辑运算 16. 01 #include <iostream> 02 03 using namespace std; 04 05 int main() 06 { 07 unsigned short x, y; 08 cin >> x >> y; 09 x (x | x << 2) & 0x33; 10 x (x | x << 1) & 0x55; 11 y (y …

常见离线语音识别模块功能说明——天问ASR;机芯智能;海凌科;轻语音

本文章从开发方式及功能等方面上进行说明&#xff0c;便于开发者进行选择与开发。 本文章依据截至2024年8月1日各网站资料进行整理编写。 总结&#xff1a; 开发方式上&#xff1a; 天文ASR 有着最灵活的开发方式&#xff0c;可完全按照程序员意愿进行开发&#xff0c;同时有…

零基础进程最详解:进程状态、僵尸进程、孤儿进程、阻塞态、挂起态、进程切换、进程常用命令、进程创建、队列优先级

目录 强烈建议全文阅读&#xff01;&#xff01;&#xff01; 强烈建议全文阅读&#xff01;&#xff01;&#xff01; 强烈建议全文阅读&#xff01;&#xff01;&#xff01; 一、进程状态 二、僵尸和孤儿进程 1、僵尸进程 Z&#xff08;zombie&#xff09; 2、孤儿进…

[012-1].第12节:Mysql的配置文件的使用

6.配置文件的使用 6.1.配置文件的格式 1.查看配置文件&#xff1a;vim /etc/my.cnf 2.在配置文件中华定义了很多组&#xff0c;组名就分别是server&#xff0c;mysqld&#xff0c;mysqld_safe,client,mysql,mysqladmin&#xff0c;每个组下面就可以定制很多启动项&#xff1b…

scrapy框架2

scrapy框架2 一、中间件 &#xff08;下载中间件&#xff09; 利用中间件加cookie 案例&#xff1a;登录以后下载豆瓣的电影信息 def get_cookie_dict():cookie_str登陆后的cookiecookie_dict{}for item in cookie_str.split(";"):key,valueitem.split(""…

遇到缓存问题

问题&#xff1a;在事务中在进行数据库查询所有的数据后&#xff0c;将其中的数据更改几个后&#xff0c;重新进行查询。发现此时返回的数据并不是修改之后的数据。 经过学习后发现是Mybatis的一级缓存问题,同时也了解的Mybatis的二级缓存&#xff1a; Mybatis一级缓存: 当在…

SpringCloud网关 SpringBoot服务 HTTP/HTTPS路由/监听双支持

背景 一般来说SpringCloud Gateway到后面服务的路由属于内网交互&#xff0c;因此路由方式是否是Https就显得不是那么重要了。事实上也确实如此&#xff0c;大多数的应用开发时基本都是直接Http就过去了&#xff0c;不会一开始就是直接上Https。然而随着时间的推移&#xff0c…

WebGoC题解(16) 386.山洞

题目描述 小C和弟弟一起参观影视城&#xff0c;发现里面有m个圆形排列的“小山洞”&#xff0c;山洞用半径20、颜色号为编号的圆表示&#xff0c;由边长是100的线连接&#xff0c;均匀的发布一圈&#xff08;1号洞在正上方&#xff09;。m为8时如下图&#xff1a; 小C跟弟弟提议…

点赞10W+,销售额上百万,如何搭上奥运的流量快车?

2024巴黎奥运会正如火如荼进行中。一边是紧张的赛事与各种抓马事情&#xff0c;一边是法国的浪漫与中国00后的松弛&#xff0c;这届奥运会的看客仿佛瓜田里的猹&#xff0c;忙得不可开交。 作为全球范围内的重大体育盛事&#xff0c;奥运会一直以来都备受公众的热烈关注。 据腾…

Python PDF处理技巧 - 加密和解密PDF

目录 安装Python PDF库 使用Python加密PDF 使用Python设置PDF的安全权限 使用Python解密PDF PDF文档在我们的个人生活和工作中扮演着重要角色。从机密的商业报告到敏感的个人记录&#xff0c;PDF广泛应用于存储和共享重要信息。然而&#xff0c;随着数据泄露和未经授权访问…

facebook脸书登入协议分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;若有侵权&#xff0c;请添加&#xff08;wx&#xff1a;wyqlxl99&#xff09;联系删除 前言: 前段…

MuRF代码阅读

对图像Size的处理, 以适应Transformer 在MVSPlat 当中使用 Center_Crop 裁剪图像&#xff0c;适用于 Transformer 的32 倍数&#xff0c; 其中 焦距 f 不变化&#xff0c;只改变 cx,cy.MuRF 直接对图像进行 插值&#xff0c;合成理想的 size. 根据 ori_size 和 inference_size…

恒驰快讯丨恒驰受邀出席华为云数据库专题销售伙伴思享会

7月25日下午&#xff0c;华为云数据库专题销售伙伴思享会在上海成功落幕。 本次华为云数据库专题销售伙伴思享会&#xff0c;汇集了优秀伙伴、华为云产品专家70人&#xff0c;共同见证了一场关于数据库前沿技术、市场趋势和应用实践的深入交流盛会。上海恒驰信息系统有限公司&a…

【Linux网络编程】套接字Socket

网络编程基础概念&#xff1a; ip地址和端口号 ip地址是网络协议地址&#xff08;4字节32位&#xff0c;形式&#xff1a;xxx.xxx.xxx.xxx xxx在范围[0, 255]内&#xff09;&#xff0c;是IP协议提供的一种统一的地址格式&#xff0c;每台主机的ip地址不同&#xff0c;一个…

【赛事】2024第五届“华数杯”全国大学生数学建模竞赛

为了培养学生的创新意识及运用数学方法和计算机技术解决实际问题的能力&#xff0c;天津市未来与预测科学研究会、中国未来研究会大数据与数学模型专业委员会&#xff08;协办&#xff09;决定举办华数杯全国大学生数学建模竞赛。竞赛的目标是为培养大学生的科学精神及运用数学…

精准识别,无缝转换:2024年顶尖语音转文字技术展示

高效、准确的信息传递与处理成为了我们工作与生活中的重要需求。随着科技的飞速发展&#xff0c;一项革命性的技术——语音转文字软件应运而生。掌握这项技术就能提高工作效率创造更多价值。 1.365在线转文字 链接传送&#xff1a;www.pdf365.cn/ 这个方式虽然不是软件&am…

《四季之歌:春溪潺潺、夏林舞动、秋山守望、冬夜温光》

在这个喧嚣的世界里&#xff0c;有时我们会渴望逃离&#xff0c;去寻找那些安静而纯净的自然角落。每个季节都有它独特的魅力&#xff0c;它们像是大自然精心谱写的交响乐章&#xff0c;我们只需细心聆听&#xff0c;就能感受到四季变换带来的无尽奇境。 春天的序曲&#xff0c…