当前位置: 首页 > news >正文

SDKMAN工具来实现JDK版本的管理

什么是 SDKMAN?

在 Java 开发中,我们经常需要管理多个版本的 JDK、Maven 或 Gradle。例如:

  • 某个老项目依赖 JDK 8
  • 新项目需要 JDK 17
  • 有时还要测试 OpenJDK 等不同发行版

手动安装和切换比较麻烦,而SDKMAN正是为了解决这个问题而诞生的。

SDKMAN 简介

SDKMAN! 是一个在 Linux、macOS(以及 Windows 的 Bash 环境)中用于安装、管理和切换多版本 SDK
的命令行工具。如常见SDK:Java/JDK、Maven、Gradle、Groovy、Scala, Kotlin等。

本文将介绍如何在 Windows 环境下通过 Git Bash 安装和使用 SDKMAN。

环境准备

1. 安装 Git for Windows

首先需要安装 Git for Windows,它提供了我们所需的 Git Bash 终端环境:

  1. 访问 Git for Windows 官网
  2. 下载并运行安装程序
  3. 安装过程中确保勾选 “Git Bash Here” 选项
  4. 完成安装后,在任意文件夹右键即可打开 Git Bash

2.安装 zip命令

Git Bash默认缺少zip依赖,需要我们手动下载,增加该命令
1.下载 zip-3.0-bin.zip 与 bzip2-1.0.5-bin.zip 。
2.将两个压缩包解压,拷贝zip.exe和bip2.dll到Git安装目录下的\usr\bin目录下

3.在 Git Bash 中安装 SDKMAN

在 Git Bash 中执行以下命令进行自动安装:

curl -s "https://get.sdkman.io" | bash

在这里插入图片描述

该命令会自动下载并安装 SDKMAN 脚本到你的用户目录中(通常是 ~/.sdkman)。

安装完成后,你会看到提示类似:

All done!You are subscribed to the STABLE channel.Please open a new terminal, or run the following in the existing one:source "/c/Users/你的用户名/.sdkman/bin/sdkman-init.sh"Then issue the following command:sdk helpEnjoy!!!

4. 手动初始化

安装完成后,需要初始化 SDKMAN 环境。在 Git Bash 中执行:

source "/c/Users/你的用户名/.sdkman/bin/sdkman-init.sh"

注意:将路径中的 你的用户名 替换为你的实际 Windows 用户名。
然后验证是否安装成功:

sdk version

在这里插入图片描述
显示版本号,说明安装成功。

三、SDKMAN 常用命令

查看可用的 Java 版本

sdk list java

输出中会列出不同厂商、不同版本的 JDK:

================================================================================
Available Java Versions for Cygwin
================================================================================Vendor        | Use | Version      | Dist    | Status     | Identifier
--------------------------------------------------------------------------------Corretto      |     | 25           | amzn    |            | 25-amzn|     | 24.0.2       | amzn    |            | 24.0.2-amzn|     | 23.0.2       | amzn    |            | 23.0.2-amzn|     | 21.0.8       | amzn    |            | 21.0.8-amzn|     | 17.0.16      | amzn    |            | 17.0.16-amzn|     | 11.0.28      | amzn    |            | 11.0.28-amzn|     | 8.0.462      | amzn    |            | 8.0.462-amznDragonwell    |     | 21.0.8       | albba   |            | 21.0.8-albba|     | 17.0.16      | albba   |            | 17.0.16-albba|     | 11.0.28      | albba   |            | 11.0.28-albba|     | 8.0.462      | albba   |            | 8.0.462-albbaGluon         |     | 22.1.0.1.r17 | gln     |            | 22.1.0.1.r17-gln|     | 22.1.0.1.r11 | gln     |            | 22.1.0.1.r11-gln|     | 22.0.0.3.r17 | gln     |            | 22.0.0.3.r17-gln
...

安装 Java

安装特定的 Java 版本:

# 安装 Oracle 17
sdk install java 17.0.12-oracle

切换 Java 版本

# 查看已安装的版本
sdk list java | grep "installed"# 临时切换版本(仅当前会话有效)
sdk use java 17.0.12-oracle# 设置默认版本
sdk default java 17.0.12-oracle

查看Java 版本

java -version

其他实用操作命令

# 卸载特定版本
sdk uninstall java 17.0.12-oracle# 查看当前正在使用的 SDK 版本
sdk current java# 查看某版本 SDK 的安装路径
sdk home java 17.0.11-tem

注意事项

  1. 如果要让 IDEA工具添加SDK
    路径通常为:/c/Users/用户名/.sdkman/candidates/java/版本号
  2. Git Bash 与 PowerShell 是隔离的环境
    SDKMAN 只会影响当前 Bash 环境。如果你在 PowerShell / CMD 中执行 java -version,不会生效。
    建议:平时开发(如使用 IntelliJ IDEA)时,在项目中手动指定 JDK 路径到
    /c/Users/用户名/.sdkman/candidates/java/版本号,或手动添加Path环境变量
  3. 默认情况下 SDK 会安装在用户目录下,你可以自定义安装位置:
export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash

参考资料

  • 官方网站:https://sdkman.io/
  • GitHub 项目:https://github.com/sdkman/sdkman-cli
http://www.dtcms.com/a/474039.html

相关文章:

  • Einops vs PyTorch 张量操作对比指南
  • 钉钉提醒业务系统源码,网站定时钉钉提醒业务系统
  • CentOS 7 安装 bzip2-libs-1.0.6-13.el7.x86_64.rpm 的详细步骤
  • 太原手手工网站建设公司贵阳市建设管理信息网站
  • 树和二叉树——一文速通
  • 轻松可视化数据的利器——JSON Crack
  • 美橙互联网站后台推广计划和推广单元有什么区别
  • 《彻底理解C语言指针全攻略(3)》
  • ORB_SLAM2原理及代码解析:LocalMapping 线程——LocalMapping::Run()
  • 【Linux】进程控制(二) 深入理解进程程序替换与 exec 系列函数
  • Linux中页面回收函数try_to_free_pages的实现
  • Transformer架构——原理到八股知识点
  • 广州网站建设商城企业网站服务
  • 【STM32项目开源】基于STM32的自适应车流交通信号灯
  • 鸿蒙NEXT应用状态栏开发全攻略:从沉浸式到自定义扩展
  • 堆(超详解)
  • Java Redis “Sentinel(哨兵)与集群”面试清单(含超通俗生活案例与深度理解)
  • Eureka注册中心通用写法和配置
  • python内置函数map()解惑:将可迭代对象中的每个元素放入指定函数处理
  • 吕口*云蛇吞路的特效*程序系统方案
  • c 网站购物车怎么做.net 网站 源代码
  • 网站建设开发合同模板优秀的商城网站首页设计
  • 服务注册、服务发现、OpenFeign及其OKHttp连接池实现
  • 设计模式篇之 门面模式 Facade
  • 2026年COR SCI2区,自适应K-means和强化学习RL算法+有效疫苗分配问题,深度解析+性能实测,深度解析+性能实测
  • 广州黄浦区建设局网站网站免费模版代码
  • 寄存器技术深度解析:从硬件本质到工程实践
  • **发散创新:探索量化模型的设计与实现**一、引言随着大数据时代的到来,量化模型在金融、医疗、科研等领域的应用越来越广泛。本文将
  • windows查看端口使用情况,以及结束任务释放端口
  • 开源安全管理平台wazuh-与网络入侵检测系统集成增强威胁检测能力