Windows下使用SDKMAN对JDK(Java)进行多版本管理

server/2024/9/22 13:06:58/

Windows下使用SDKMAN对JDK(Java)进行多版本管理

  • 1.背景
  • 2.基于msys2工具
    • 2.1. msys2简介
    • 2.2. 安装与配置
    • 2.2. Windows环境变量配置参考
    • 2.3 结果确认
  • 3. 基于WSL

1.背景

前端有nvm,python有miniconda,miniforge等,java呢?java在Linux,Macos下有SDKMAN以及其他的版本管理工作,SDKMAN好用,但不直接支持Windows,本文通过深度,摸索出一个可以在Windows下使用的SDKMAN方式。

2.基于msys2工具

推荐此方式

2.1. msys2简介

MSYS2(Minimal SYStem 2)是一个集成了大量的GNU工具链、工具和库的开源软件包集合。它提供了一个类似于Linux的shell环境,可以在Windows系统中编译和运行许多Linux应用程序和工具。
MSYS2基于MinGW-w64平台,提供了一个完整的开发环境,包括GCC编译器、GDB调试器、Make、Git版本控制系统和许多其他开发工具。除了常用的开发库和工具之外,MSYS2还提供了许多专门针对Windows平台的库和工具,方便开发人员进行跨平台开发和移植工作。
由于MSYS2拥有比较完整的Linux工具链和库,因此它成为了许多跨平台开发和移植项目的首选工具。另外,使用MSYS2也可以轻松地在Windows系统中搭建一个类似于Linux的软件开发环境,方便开发人员进行开发和调试工作。

2.2. 安装与配置

进入MSYS2(https://www.msys2.org/)下载
在这里插入图片描述
安装msys2后,对应的用户目录"msys2安装目录\home\windows用户名"
在这里插入图片描述
运行msys2 ucrt64 终端,然后在其操作

pacman -S zip unzip #安装zip,unzip
curl -s "https://get.sdkman.io" | bash #安装sdkman
source "$HOME/.sdkman/bin/sdkman-init.sh" #环境变量即时生效
sdk version #版本查看
sdk install java 17.0.10-oracle #安装jdk

在这里插入图片描述
位置:C:\msys64\home\long.sdkman\candidates\java\current
在这里插入图片描述

2.2. Windows环境变量配置参考

进入界面进行环境变量设置
在这里插入图片描述
参考变量与值设定

JAVA_HOME: C:\msys64\home\long\.sdkman\candidates\java\current
Path:  %JAVA_HOME%\bin
CLASSPATH:.,%JAVA_HOME%\lib\tool.jar;%JAVA_HOME%\lib\dt.jar

2.3 结果确认

因为windows配置的current,因此需要切换版本时,直接在msys2命令台切换即可。
在这里插入图片描述

3. 基于WSL

**注意:**此方式仅限WSL内使用,使用方式同Linux
友情提醒:安装sdkman,并指定sdkman安装位置到C盘根目录sdkman中,取代默认wsl主机中的~/.sdkman ,这样windows也可以正常访问(java这事访问也没有意义,因为下载下来的是Linux的命令,无法执行)。因为默认情况下,wsl主机中可以直接访问的所有,而windows访问wsl则需要通过\这种非文件协议,导致不方便

sudo apt install zip unzip
curl -s "https://get.sdkman.io" | bash #安装sdkman
#export SDKMAN_DIR="/mnt/c/sdkman" && curl -s "https://get.sdkman.io" | bash #安装sdkman,并指定sdkman安装位置到C盘根目录sdkman中,取代默认wsl主机中的~/.sdkman ,这样windows也可以正常访问(java这事访问也没有意义,因为下载下来的是Linux的命令,无法执行)。因为默认情况下,wsl主机中可以直接访问的所有,而windows访问wsl则需要通过\\这种非文件协议,导致不方便
source "$HOME/.sdkman/bin/sdkman-init.sh" #环境变量即时生效
sdk version #版本查看
sdk install java 17.0.10-oracle #安装jdk

安装后确认其位置

whereis java

显示在用户主目录的.sdkman/candidates/java/17.0.10-oracle/bin/java
在这里插入图片描述
直接在地址栏访问,这里为Linux根目录,进入java目录,也是Linux版本的java,这个和msys2不同,在msys2进去java的目录是windows版本的java

\\wsl.localhost\Ubuntu

在这里插入图片描述


http://www.ppmy.cn/server/11409.html

相关文章

全新升级数智化招标采购平台V7.0亮点,助推管理提升

数智化招标采购平台V7.0是郑州信源凭借18年以来在招采领域累积的深厚行业经验和业务洞察,迭代升级的全新产品,平台融合云原生、微服务、大数据、人工智能、物联网等先进技术,构建业务中台、数据中台、AI中台三大核心基座,以采购为…

VUE-ajax

VUE-ajax vue-resource的介绍 vue-resource是Vue高度集成的第三方包。 官网链接: 文档(http相关):https://github.com/pagekit/vue-resource/blob/master/docs/http.md vue-resource 依赖于 Vue。所以,我们要按照…

Ai终端程序推荐waveterm

有没有人根据Ai的风口,做智能终端呢?答案是真有,真有专为无缝工作流程而构建的开源 AI 原生终端。它是去年推出的一个产品,专为程序员和开发者设计,比较创新的一点是所有的工作可以在终端完成,开源和可扩展…

JavaSE——程序逻辑控制

1. 顺序结构 顺序结构 比较简单,按照代码书写的顺序一行一行执行。 例如: public static void main(String[] args) {System.out.println(111);System.out.println(222);System.out.println(333);} 运行结果如下: 如果调整代码的书写顺序 , …

OpenHarmony图片处理——XmlGraphicsBatik

简介 XmlGraphicsBatik项目用于处理可缩放矢量图形(SVG)格式的图像,例如显示、生成、解析或者操作图像。 支持SVG图像的显示,可显示静态及动态SVG图像; 支持快捷生成SVG图像文件; 支持操作SVG图像进行颜…

python使用tkinter和ttkbootstrap制作UI界面(二)

这次讲解UI界面常用的主键,延续上文的框架进行编写,原界面如下: Combobox组件应用(下拉框) """Combobox组件"""global comvalue_operatorcomvalue_operator tk.StringVar()value_ope…

Ubuntu或Debian系统的漏洞修复:apt安装包管理工具

在阿里云主机管理后台->安全云中心,会看到系统最新的公布漏洞。 对于系统软件漏洞,我们还是要早做修复,防患于未然。 但安全云中心的功能大部分需要付费,包括一键修复,自己修复软件漏洞怎么操作呢? 其…

AI日报:最强大模型Llama 3发布;Midjourney推社交新功能Room;超强AI视频自动剪辑工具Captions;手机上可以玩大模型了

新鲜AI产品点击了解:https://top.aibase.com/ 1、最强大模型Llama3 正式发布 已达GPT4 级别 Llama3是Meta公司最新发布的开源模型,拥有80亿和700亿参数规模,预计7月正式发布。该模型具备多模态能力,集成了新的计算机编码功能&am…