前言
话接上一篇我们讲到如何在Windows系统(主要是win10,win11)安装Windows 子系统,也就是在Windows系统无需虚拟机,安装Linux系统,其实还是比较简单的,虽然过程中会遇到一点小问题,但是最终应该都可以成功安装。这节主要是接着我们前面的内容,希望用SDKMAN来实现方便流畅的JDK管理。但是经过我的实践,通过WSL安装的Linux系统再用SDKMAN管理Windows的JDK会有问题,接下来我就讲一下遇到的问题和如何最终实现轻松管理Windows的JDK版本。
一,在我们安装完成的Ubuntu安装SDKMAN
其实和前面的安装过程是一样的,只是我们安装好的Ubuntu系统默认缺少一些命令,我们需要提前安装好。
1.1.需要安装curl,unzip,zip
sudo apt-get install curl
sudo apt-get install unzip
sudo apt-get install zip
1.2安装SDKMAN
curl -s "https://get.sdkman.io" | bash
1.3安装完成后执行
source "$HOME/.sdkman/bin/sdkman-init.sh"
1.4验证
sdk version

二,利用SDKMAN安装JDK
具体的安装过程就不再赘述了可以看我前面的内容:
SDKMAN安装JDK
安装完成后通过java -version 可以验证,安装成功了。但是用sdk current java 会报出Not using any version of java。并没有显示当前安装的jdk版本信息。

找了很多方法还没有找到解决这个问题的方法,但想想既然安装成功了,那还是要着手于能不能用,这个问题先记下,只要能用后面再解决呗。
安装成功后jdk在当前路径下
\\wsl.localhost\Ubuntu-22.04\home\XXX\.sdkman\candidates\java 注:XXX是你自己的用户名

但是可以看到current并不是一个文件夹,这样就没法在环境变量里设置,也就没办法做自由到切换版本了....
难到要白忙一场吗?
绝对不可能,下面我们引出另一个方案,通过Git Bash
三,Git Bash+SDKMAN 实现WindowsJDK版本自由切换
3.1. 先安装 Git Bash
如果还没有安装Git Bash 先安装Git Bash传送门,安装过程就不在这里展示了,很简单,有手就行
3.2.启动Git Bash 界面
Git Bash安装完成后,在桌面任意位置鼠标右键选择open Git Bash here,就可以打开Git Bash终端了

3.3.安装SDKMAN
通过Git Bash安装SDKMAN
curl -s "https://get.sdkman.io" | bash
不出意外这个时候要出意外了

缺少zip工具
支持的MinGW环境的软件传送门
下载完zip-3.0-bin.zip之后,把里面的zip.exe复制到Git Bash下mingw\bin目录下,需要根据自己的安装目录如:C:\Program Files\Git\mingw64\bin,具体要根据自己的安装目录
继续执行完成后
source "$HOME/.sdkman/bin/sdkman-init.sh"
验证
sdk version

SDKMAN安装完成!
3.4安装JDK
JDK安装步骤可以参考我前面的文章:传送门
安装完成后验证时发现和前面在Linux子系统一样的问题

用sdk current java 验证会报Not using any version of java
但是通过java -version 没有问题,如果也有问题的的话重启一下Git Bash。
那么问题来了,到底行不行呢?
查看JDK的安装路径默认情况下在$HOME/.sdkman/candidates/java/current/bin,具体路径可以通过以下命令在 Git Bash 中查看
echo "$HOME/.sdkman/candidates/java/current/bin"
/c/Users/XXX/.sdkman/candidates/java/current/bin
注:XXX是你的用户名
与之前Linux子系统不同,通过Git Bash 安装完成后我们在current目录看到是如下:

这样就可以通过配置环境变量找到对应的JDK
3.5配置环境变量
操作步骤:我的电脑-》右键属性-》高级系统设置-》环境变量-》系统环境-》系统变量
编辑修改或添加,根据自己的路径编辑完成,确定

3.6验证是否生效
打开Windows终端,输入java -version ,验证是否是自己刚刚安装的版本
java -version

正常情况下应该是可以生效的!
3.7.在Git Bash中切换版本再次验证
sdk default java 17.0.12-graal


正常情况下至此你已经实现了JDK版本的随意切换了!
在IDEA也可以配置你的JDK版本了!
至此通过Git Bash +SDKMAN比较完美的实现了JDK版本的简单随意切换!
有问题欢迎留言,以便及时斧正,也欢迎一起讨论!
如果觉得内容不错的,给个关注+收藏!
最后祝大家工作顺利,生活安康!

4016

被折叠的 条评论
为什么被折叠?



