Windows平台SDKMAN工具使用

为方便jvm生态的软件版本管理,可以使用sdkman工具来安装和管理诸如javagradle等软件的当前使用版本。尤其是大多数程序员都是在windows平台开发,团队开发通常都需要统一的jvm相关软件的版本。这里给大家演示下windows平台如何安装和使用sdkman来实现这一需求。

文章目录

    • 下载安装类Unix工具MSYS2
    • 解决MSYS2下Windows环境变量不能用的问题
    • 安装sdkman
    • 实战 - 安装和使用groovy
    • 实战 - 安装jdk

下载安装类Unix工具MSYS2

MSYS2下载地址:https://www.msys2.org/主页的安装链接

MSYS2安装,位置可自己指定:D:\Programs\msys64

说明

安装位置默认是系统盘,后续用sdk安装的软件会放在sdk安装目录中,要是系统盘空间有限,建议自己指定sdkman安装盘。

在开始菜单中把MSYS2 MSYS发送桌面快捷方式,方便调取。

在这里插入图片描述

解决MSYS2下Windows环境变量不能用的问题

新增环境变量MSYS2_PATH_TYPE,值为inherit,重启MSYS2

安装sdkman

# 安装zip、unzip
pacman -S zip unzip
# 安装sdkman
export SDKMAN_DIR="D:/Programs/sdkman" && curl -s "https://get.sdkman.io" | bash
# 让环境变量马上生效,这样新开一个命令窗口sdk命令也生效
source "D:/Programs/sdkman/bin/sdkman-init.sh"
# 查看版本
sdk version

实战 - 安装和使用groovy

# 查看groovy版本 如果显示的列表太长,按上下键滚动,按q建退出
sdk list groovy# 先安装3.0.4版本
sdk install groovy 3.0.4
# 再安装4.0.22版本,方便演示版本切换
sdk install groovy 4.0.22# 在当前shell会话中使用指定版本
sdk use groovy 3.0.4# 对所有shell会话都生效,注意要获取管理员权限
# 设置的路径为:D:\Programs\sdkman\candidates\groovy\current
# 为了访问groovy命令,在Path中添加路径:D:\Programs\sdkman\candidates\groovy\current\bin
sdk default groovy 4.0.22# 查看当前sdk使用的所有安装好的软件版本
sdk current 
# 查看当前sdk使用的groovy软件版本
sdk current groovy# 自行演示groovy版本切换

在这里插入图片描述

更优雅的设置环境变量

这里把D:\Programs\sdkman\candidates\groovy\current\bin直接添加到Path环境变量不是那么优雅。更好的做法:新建环境变量GROOVY_HOME指向D:\Programs\sdkman\candidates\groovy\currentPath中添加%GROOVY_HOME%\bin

实战 - 安装jdk

# 查看jdk版本
sdk list java# 安装指定版本
sdk install java 17.0.12-oracle
sdk install java 22.0.2-oracle
# 设置当前使用的版本
sdk default java 17.0.12-oracle

将路径:D:\Programs\sdkman\candidates\java\current设置为JAVA_HOME环境变量的值。Path变量中添加%JAVA_HOME%\bin

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

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

相关文章

安全架构设计

目录 1安全需求分析 2安全架构原则 3安全架构方法 系统架构完整实例_系统架构设计案例-CSDN博客 1安全概述 系统安全架构设计,主要包含:物理安全,网络安全,系统安全,数据安全,应用安全。 完整性(Integ…

内存管理篇-05物理页面的迁移类型migratetype

本节内容依旧是对上节课伙伴系统的补充,主要介绍了新版伙伴系统的页面迁移相关的内容 为什么要引入页面迁移类型?新版本伙伴系统针对老版本的伙伴系统的升级改进。主要优化memory compaction内存碎片整理的过程。 页面迁移实际上就是伙伴系统中free_area…

构建高效的串行任务执行器:SerialExecutor深度解析

本文主要介绍怎么去实现一个支持串行执行任务的SerialExecutor执行器 摘要 在复杂的异步编程中,有时我们需要确保任务以串行的方式执行,以维护任务间的依赖关系或顺序。SerialExecutor 是一个自定义的执行器,它封装了 Java 的 Executor 接口…

leetcode 3 无重复字符的最长子串

leetcode 3 无重复字符的最长子串 正文普通解法双指针 正文 普通解法 重点观察示例 3。本题重点是创建一个动态区间,然后判断位于这个动态区间之外的字符是否被包含在这个动态区间范围内。并且对于 s 长度小于 1 的情况要重点进行讨论。 class Solution:def lengt…

day38.动态规划+MySql数据库复习

844.比较含退格的字符串 给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。 注意:如果对空文本输入退格字符,文本继续为空 思路:定义两个栈,将字符…

后端完成api顺序

contoroller层 Service层 点击getById,如果没有getById函数就先声明一个 然后完成函数体 db层 数据访问对象.数据库方法 //作用是提供对数据库中特定表的操作方法

20. elasticsearch进阶_数据可视化与日志管理

20. 数据可视化 本章概述一. `elasticsearch`实现数据统计1.1 创建用户信息索引1.1.1 控制台创建`aggs_user`索引1.1.2 `aggs_user`索引结构初始化1.1.3 `aggs_user`索引的`EO`对象1.1.4 用户类型枚举1.1.5 数据初始化1.2 内置统计聚合1.2.1 `terms`与`date_histogram``terms``…

C语言基础(十五)

指针的使用&#xff1a; 测试代码1&#xff1a; #include <stdio.h> // 标准的 main 函数声明&#xff0c;包括可选的 envp 参数 int main(int argc, char *argv[], char *envp[]) { // argc 命令行参数的数量&#xff08;包括程序名&#xff09; // argv 指向字…

【html+css 绚丽Loading】000015 九转轮回珠

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽Loading&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495…

hyper-v ubuntu下连接嵌入式linux板卡

用hyper-v非常的方便&#xff0c;不用装vm也不会那么臃肿&#xff0c;但如何在hyper-v和嵌入式板卡之间进行通讯呢&#xff1f; 1.环境 采用的是100ask-imx6ull板卡&#xff0c;hyper-v装的是ubuntu22系统。 hyper-v根据文章hyper-v上外网已经配置了一个虚拟网卡。 2.物理连…

前端技术(四)—— 最经典Node.JS全套教程

一、node简介 1. 浏览器中的 JavaScript 的组成部分 2. 思考&#xff1a;为什么 JavaScript 可以在浏览器中被执行 3.思考&#xff1a;为什么 JavaScript 可以操作 DOM 和 BOM 4. 浏览器中的 JavaScript 运行环境 5. 思考&#xff1a;JavaScript 能否做后端开发 6. Node.js介绍…

数据仓库建模的步骤-从需求分析到模型优化的全面指南

想象一下,你正站在一座巨大的图书馆前。这座图书馆里存放着你公司所有的数据。但是,书籍杂乱无章,没有分类,没有索引。你如何才能快速找到所需的信息?这就是数据仓库建模要解决的问题。本文将带你深入了解数据仓库建模的主要步骤,让你掌握如何将杂乱的数据转化为有序、高效、易…

React antd Table表格动态合并单元格

注意&#xff1a; ① 采用的是React antDsign 4.x版本 ② 需重新处理data数据 实现效果 代码实现 import React from react; import { Table } from antd;const data [{key: 0,name: 张三,age: 22,sex: 男,},{key: 1,name: 李四,age: 42,sex: 男,},{key: 2,name: 小丽,age: …

yolo V8训练 长条状目标

1、说明 目标数据集合中有很多长条状图片&#xff0c;如果直接Resize 会严重拉伸&#xff0c;因此采用把长条图像裁剪成2段&#xff0c;然后将裁剪后的2段图片拼接在一起。 2、代码 2.1 C 代码 &#xff08;部署&#xff0c;模型推理时C &#xff09; #include <stdio.h…

ML307R_APP_DEMO_SDK TCP/UDP使用介绍

ML307R_APP_DEMO_SDK是在ML307R_OpenCPU_Standard_SDK标准代码基础上&#xff0c;新增了面向用户APP层的demo示例&#xff0c;与标准代码中examples的示例代码不同&#xff0c;app_demo实现了联网自动化&#xff0c;数据透传&#xff0c;各功能可独立自动运行&#xff0c;并对用…

【Oracle点滴积累】解决ORA-29913和KUP-04095: preprocessor command的方法

广告位招租&#xff01; 知识无价&#xff0c;人有情&#xff0c;无偿分享知识&#xff0c;希望本条信息对你有用&#xff01; 今天和大家分享ORA-29913: error in executing ODCIEXTTABLEFETCH callout和KUP-04095: preprocessor command错误的解决方法&#xff0c;本文仅供参…

ArcGIS Pro基础:如何将数据和引用地图样式一起打包分享

如上所示&#xff0c;有2个矢量图斑&#xff0c;一个是耕地地块&#xff0c;另一个是范围图斑&#xff0c;如果我们需要把此工程的所有数据以及引用地图一起分享给别人&#xff0c;就可以使用【打包工程】这个工具。 如上所示&#xff0c;在【地理处理】下输入【打包工程】&am…

AI绘画【SD教程】进阶篇,文生图复现金克斯动漫形象,用AnimateDiff动画插件让她动起来!AI动画教程建议收藏

大家好&#xff0c;我是画画的小强 当你成功安装了AI绘画工具 SD&#xff08;Stable Diffusion&#xff09;后&#xff0c;是否也产生过这样的疑惑&#xff1a;为何我创作的图片与他人的作品在风格和质量上存在差异&#xff1f; 实际上&#xff0c;在AI绘画的领域中&#xff…

java-3 多态

什么是多态 对象多态&#xff0c;行为多态 方法&#xff1a;编译看左边&#xff0c;运行看右边 变量&#xff1a;编译运行都看左 为什么呢&#xff1f; 多态强调的是对象多态和行为多态&#xff0c;可没说变量多态 使用多态的好处 编译看左边&#xff0c;不能调用子类独有的…

景联文科技高质量文本标注:驱动自然语言处理技术的发展与应用

文本标注是自然语言处理&#xff08;NLP&#xff09;领域的一个重要环节&#xff0c;是指在文本数据上添加额外的信息或标记的过程&#xff0c;目的是为了让计算机能够理解和处理这些文本数据。 通过文本标注&#xff0c;可以为文本中的各个部分提供具体的含义和上下文信息&…