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

Linux【工具 04】Java等常用工具的多版本管理工具SDKMAN安装使用实例

《SDKMAN 官网》有详细的安装使用说明,可跳转查看,这里只做实例演示,详细重现安装过程,一些不必要的说明不再赘述,首先要注意的是全程需要进行联网,离线环境可能只能作为版本切换的工具。

多版本管理工具SDKMAN安装使用实例

  • 1.讯飞星火对 SDKMAN 的介绍
  • 2.安装使用实例
    • 2.1 安装实例
    • 2.2 使用实例

1.讯飞星火对 SDKMAN 的介绍

  1. 核心功能
  • 多版本共存与切换:支持Java、Scala、Kotlin等JVM语言以及Maven、Gradle、Spring Boot CLI等常用工具的多版本共存,可无缝切换不同版本。
  • 一键安装与配置:自动下载、安装、配置环境变量,简化了开发环境的搭建过程。
  • 版本管理:能查看可用软件包、已安装软件包的版本,还可设置默认版本、版本别名,以及临时使用特定版本等。
  • 升级与卸载:可升级所有已安装的SDK或指定版本,也可卸载不需要的版本。
  1. 工作原理:采用一系列sh脚本来注册SDK相关命令,通过从官方API下载组件进行安装,本质上与正常的Unix安装流程类似。
  2. 适用场景
  • 多项目开发:不同项目可能需要不同版本的开发工具,SDKMAN可方便地在各项目所需版本间切换。
  • CI/CD环境:能快速配置特定版本的构建环境,确保持续集成和持续交付过程中的环境一致性。
  • 工具测试:便于对比不同版本工具的表现,为技术选型提供参考。
  • 教学演示:可快速切换演示环境,提高教学效率。

2.安装使用实例

2.1 安装实例

  1. 服务安装
[root@tcloud sdkman]# curl -s "https://get.sdkman.io" | bash-+syyyyyyys:`/yho:`       -yd.`/yh/`             +m..oho.                 hy                          .`.sh/`                   :N`                `-/o`  `+dyyo:..yh:`                     `M-          `-/osysoym  :hs` `-+sys:      hhyssssssssy+.sh:`                       `N:          ms/-``  yy.yh-      -hy.    `.N-````````+N.`od/`                         `N-       -/oM-      ddd+`     `sd:     hNNm        -N::do`                           .M.       dMMM-     `ms.      /d+`     `NMMs       `do.yy-                             :N`    ```mMMM.      -      -hy.       /MMM:       yh`+d+`           `:/oo/`       `-/osyh/ossssssdNMM`           .sh:         yMMN`      /m.-dh-           :ymNMMMMy  `-/shmNm-`:N/-.``   `.sN            /N-         `NMMy      .m/`oNs`          -hysosmMMMMydmNmds+-.:ohm           :             sd`        :MMM/      yy.hN+           /d:    -MMMmhs/-.`   .MMMh   .ss+-                 `yy`       sMMN`     :N.:mN/           `N/     `o/-`         :MMMo   +MMMN-         .`      `ds       mMMh      do/NN/            `N+....--:/+oooosooo+:sMMM:   hMMMM:        `my       .m+     -MMM+     :N./NMo              -+ooooo+/:-....`...:+hNMN.  `NMMMd`        .MM/       -m:    oMMN.     hs-NMd`                                    :mm   -MMMm- .s/     -MMm.       /m-   mMMd     -N.`mMM/                                      .-   /MMh. -dMo     -MMMy        od. .MMMs..---yh+MMM.                                           sNo`.sNMM+     :MMMM/        sh`+MMMNmNm+++-mMMM-                                           /--ohmMMM+     :MMMMm.       `hyymmmdddoMMMMh.                  ````              `-+yy/`yMMM/     :MMMMMy       -sm:.``..-:-.`dMMMMmo-.``````..-:/osyhddddho.           `+shdh+.   hMMM:     :MmMMMM/   ./yy/` `:sys+/+sh/.dMMMMMMmdddddmmNMMMNNNNNMMMMMs           sNdo-      dMMM-  `-/yd/MMMMm-:sy+.   :hs-      /N``/ymNNNNNNNmmdys+/::----/dMMm:          +m-         mMMM+ohmo/.` sMMMMdo-    .om:       `sh`.-----+/.`       `.-+hh/`         `od.          NMMNmds/     `mmy:`     +mMy      `:yy./moyso+//+ossso:.           .yy`          `dy+:`         ..       :MMMN+---/oys:/+m:  `.-:::-`               /d+                                    +MMMMMMMNh:`+MN/                        -yh.                                     `+hddhy+./MM+                       .sh::NMo                      -sh/-NMs                    `/yy:.NMy                  `:sh+.`mMm`               ./yds-`dMMMmyo:-.````.-:oymNy:`+NMMMMMMMMMMMMMMMMms:`-+shmNMMMNmdy+:`Now attempting installation...Looking for a previous installation of SDKMAN...
Looking for unzip...
Looking for zip...
Looking for tar...
Looking for curl...
Looking for sed...
Installing SDKMAN scripts...
Create distribution directories...
Getting available candidates...
Prime platform file...
Prime the config file...
Installing script cli archive...
* Downloading...
######################################################################## 100.0%
* Checking archive integrity...
* Extracting archive...
* Copying archive contents...
* Cleaning up...Installing script cli archive...
* Downloading...
######################################################################## 100.0%
* Checking archive integrity...
* Extracting archive...
* Copying archive contents...
* Cleaning up...Set version to 5.19.0 ...
Set native version to 0.7.4 ...
Attempt update of interactive bash profile on regular UNIX...
Added sdkman init snippet to /root/.bashrc
Attempt update of zsh profile...
Updated existing /root/.zshrcAll done!You are subscribed to the STABLE channel.Please open a new terminal, or run the following in the existing one:source "/root/.sdkman/bin/sdkman-init.sh"Then issue the following command:sdk helpEnjoy!!!
  1. 环境初始化
source "$HOME/.sdkman/bin/sdkman-init.sh"

亲测关闭当前连接后环境变量配置失效:

-bash: sdk: command not found

sdkman-init.sh放置到 /etc/profile.d/目录下即可:

cp $HOME/.sdkman/bin/sdkman-init.sh /etc/profile.d/
source /etc/profile.d/sdkman-init.sh
  1. 安装验证
[root@tcloud sdkman]# sdk versionSDKMAN!
script: 5.19.0
native: 0.7.4 (linux x86_64)
  1. 帮助信息
[root@tcloud sdkman]# sdk helpNAMEsdk - The command line interface (CLI) for SDKMAN!SYNOPSISsdk <subcommand> [candidate] [version]DESCRIPTIONSDKMAN! is a tool for managing parallel versions of multiple JVM relatedSoftware Development Kits on most Unix based systems. It provides aconvenient Command Line Interface (CLI) and API for installing, switching,removing and listing Candidates.SUBCOMMANDS & QUALIFIERShelp         [subcommand]install      <candidate> [version] [path]uninstall    <candidate> <version>list         [candidate]use          <candidate> <version>config       no qualifierdefault      <candidate> [version]home         <candidate> <version>env          [init|install|clear]current      [candidate]upgrade      [candidate]version      no qualifieroffline      [enable|disable]selfupdate   [force]update       no qualifierflush        [tmp|metadata|version]EXAMPLESsdk install java 17.0.0-temsdk help install
  1. 备份及卸载

Here is how you go about removing SDKMAN! from your system:

  1. Optionally backup and then remove the installation:
tar zcvf ~/sdkman-backup_$(date +%F-%kh%M).tar.gz -C ~/ .sdkman
rm -rf ~/.sdkman
  1. Remove initialization snippet from your shell configs. Edit and remove the initialisation snippet from your .bashrc, .bash_profile and/or .profile files. If you use ZSH, remove it from the .zshrc file. The snippet of code to be removed looks something like this:
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
[[ -s "/home/dudette/.sdkman/bin/sdkman-init.sh" ]] && source "/home/dudette/.sdkman/bin/sdkman-init.sh"

Once removed, you have successfully uninstalled SDKMAN! from your machine.

2.2 使用实例

  1. 查询当前使用的 Java 版本
sdk current java
  1. 查询 JDK 列表
sdk list java
  1. 安装 JDK
# 1.安装最新版
[root@tcloud ~]# sdk install javaDownloading: java 21.0.7-temIn progress...
# 2.安装指定版本
Downloading: java 21.0.4-temIn progress...######################################################################## 100.0%Installing: java 21.0.4-tem
Done installing!
  1. 卸载 JDK
sdk uninstall java 21.0.4-tem 
http://www.xdnf.cn/news/10232.html

相关文章:

  • 华为OD机试真题—— 最少数量线段覆盖/多线段数据压缩(2025A卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
  • 【算法】动态规划
  • 【Dv3Admin】工具分页配置文件解析
  • 姜老师的MBTI课程:MBTI是可以转变的
  • Java代码重构:如何提升项目的可维护性和扩展性?
  • Linux.docker.k8s基础概念
  • 【设计模式-4.5】行为型——迭代器模式
  • 自定义载板RK3588HDMI输入配置完整解决方案
  • Catch That Cow POJ - 3278
  • fdw批量导入外部表
  • 7.CircuitBreaker断路器
  • 【js逆向】某某省过验证码逆向
  • hantools 常用函数
  • 第二代IndoorLink头戴式无线讲解器,远距+动感,更好用了
  • 数据交易场景的数据质量评估
  • 权限分配不合理如何影响企业运营?
  • 企业数字化转型的7个难点
  • 共享签名是什么
  • 【Docker 从入门到实战全攻略(一):核心概念 + 命令详解 + 部署案例】
  • If possible, you should set the HttpOnly flag for these cookies 修复方案
  • RCU stall 异常卡住问题
  • GESP】C++一级考试大纲知识点梳理(1)
  • 深入理解 Uvicorn Workers:FastAPI 与 ASGI 应用的并发利器
  • 推荐系统排序指标:MRR、MAP和NDCG
  • 一、虚拟货币概述
  • PCIe— Legacy PCI
  • STL_stack和queue(deque priority_queue)
  • 第8讲、Odoo 18 ORM 深度解析
  • AI数字人系统开发——引领未来智能交互潮流
  • C++面试题:Linux系统信号详解