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

embedded/2024/9/22 13:06:57/

一、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.ppmy.cn/embedded/90741.html

相关文章

[图形学]使用python将stl转为obj

一、简介 本文介绍了如何使用python将.stl格式的mesh转为.obj格式的文件。 二、将stl转为obj 1. 使用aspose-3d进行转换 安装 aspose-3dpip install aspose-3d将stl转换为objimport aspose.threed as a3d stl_file_path input.stl obj_file_path output.obj scene a3d.S…

qt代码显示,包含文本颜色设置等

QScintilla 安装示例代码参考链接 安装 最近发现了一个有趣的库,qt的插件库,之前一直以为显示代码时是重写QTextEdit来实现的,结果qt有现成的一个库来显示这些东西,在此记录一下 # 安装 QScintilla pip install QScintilla示例代码…

虚拟机(CentOS7)安装jenkins

centos7安装jenkins 前提条件,安装jdk与maven 1、JDK17安装 # 进入系统管理员 sudo root # 进入对应文件夹下 cd /usr/local # 下载jdk17 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm # rpm命令安装下载的jdk17 rpm -ivh jdk-17_li…

极简聊天室-websocket版(双向通信)

我们知道WebSocket是可以双向通信的,把极简聊天室代码又改了一下,前端发信息到后端也使用websocket,其实代码量更少了。。。 const express require(express); const app express(); var wsServer require(express-ws)(app)var msgs[];ap…

售前到底需要什么能力?一起来蹚一蹚售前的路!

售前严格来说,就分两块: 1、面向客户采购与销售过程的售前事务能力(上层) 2、面向客户问题解决的售前咨询能力(下层) 这两者有一个关系,搞懂这个关系,就搞懂了整个售前能力全景蓝图…

使用snap的安装docker配置阿里云镜像加速

使用snap安装docker非常的简单,一条命令即可 snap install docker 但是通过这个命令安装的docker, 配置阿里云镜像跟常规安装的配置起来不太一样, 下面讲一下配置流程 修改docker配置文件/var/snap/docker/current/config/daemon.json 这个文件应该是已经创建好…

应急靶场(11):【玄机】日志分析-apache日志分析

题目 提交当天访问次数最多的IP,即黑客IP黑客使用的浏览器指纹是什么,提交指纹的md5查看index.php页面被访问的次数,提交次数查看黑客IP访问了多少次,提交次数查看2023年8月03日8时这一个小时内有多少IP访问,提交次数 …

操作系统信号处理探讨

操作系统信号处理探讨 操作系统是计算机中最重要的软件之一,它负责对计算机的硬件和软件资源进行统一管理,确保计算机系统的正常运行。在操作系统的众多功能中,信号处理是至关重要的一环。信号处理是指操作系统如何接收、处理和响应来自硬件…