Loading

Window系统下 SDKMAN 利用Git Bash 管理 jdk版本

1. jdk要求差异问题

以 camunda 工作流为例子:

  • camunda7 要求 jdk >= 17
  • camunda8 要求 jdk >= 21

2. SDKMAN 管理jdk版本

sdkman 是兼容bash的 SDKMAN,可以方便的在WSLMac中使用;
Window下需要利用 bash 套壳才能正常使用,Git Bash就是一种方法;

  1. WSL Approach: Install Windows Subsystem for Linux (WSL) before attempting SDKMAN installation. A basic toolset (bash, zip, unzip, curl) is necessary. Most times, it works out of the box.
  2. Git Bash Solution: If you use Git Bash for Windows, you'll need to supplement it with MinGW to have the required toolset for SDKMAN. There are some issues with this approach, but it works for the most part.

3. 处理已有的jdk版本

在使用SDKMAN管理版本前,已经配置、手动下载的JDK版本管理方法如下:
image
如图所示,SDKMAN管理的JDK版本都会存储在这个目录下,current文件夹是sdk use java {jdk}指定版本的引用;

4.创建软链接,修改JAVA_HOME

GIT BASH 中 SDKMAN 修改的JDK只在当前 Shell起效,无法对Window全局起效,所以需要将Window的环境变量修改为SDKMAN中指定的current文件(Window前置不能再显示其他jdk路径)
image

创建软链接,SDKMAN管理旧版的JDK:

  1. ln -s /c/Program Files/Java/jdk1.8.0_40/ ~/.sdkman/candidates/java/1.8-local
    /c/Program Files/Java/jdk1.8.0_40/ : Window 下JDK存储路径,建议使用“”包装一下路径
    ~/.sdkman/candidates/java/1.8-localsdk list java命令发现jdk版本
    软链接介绍
  2. 测试 sdk default java ${jdk} ${jdk}就是你需要切换的版本1.8-local,然后测试一下CMD中和Git Bash 是否一致
posted @ 2026-04-01 21:58  sanswl  阅读(35)  评论(0)    收藏  举报