Windows平台SDKMAN工具使用

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

文章目录

下载安装类Unix工具MSYS2

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

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

说明

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

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

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

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

安装sdkman

shell 复制代码
# 安装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

sh 复制代码
# 查看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

sh 复制代码
# 查看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

注意

这种软链接方式设置当前版本,其路径在集成开发环境idea中绑定本地jdk会有问题,笔者实践时遇到编译源代码找不到jdk类库,绑定特定jdk版本的安装路径则问题解决。

这种方式有问题

下面这种ok

相关推荐
lht63193561220 小时前
从Windows通过XRDP远程访问和控制银河麒麟 v10服务器
linux·运维·服务器·windows
阿豪学编程21 小时前
环境变量与程序地址空间
linux·运维·windows
墨倾许21 小时前
《Windows 11 + Docker:极简DVWA靶场搭建全记录》—— 附详细排错指南与最终解决方案
windows·笔记·网络安全·docker·容器·靶场
stark张宇1 天前
盘点Nfs 文件服务在Windows上的坑??
linux·windows·centos
杨凯凡1 天前
Docker环境搭建:Windows/macOS/Linux全平台教程
windows·macos·docker
阿昭L1 天前
COM组件
windows
歪歪1001 天前
解决多 Linux 客户端向 Windows 服务端的文件上传、持久化与生命周期管理问题
linux·运维·服务器·开发语言·前端·数据库·windows
山川而川-R1 天前
ubuntu摄像头型号匹配不上_11-6
linux·windows·ubuntu
一般社员1 天前
Windows导入大型sql文件到mysql
windows·sql·mysql
A尘埃2 天前
项目三:信息抽取与图谱问答(医疗科研文献知识图谱与智能问答平台)
人工智能·windows·知识图谱