SDK管理利器:SDKMAN!

2,819 阅读2分钟

简介

管理电脑上各种SDK,如Java、Maven、Gradle、Node等,(Spring开源项目主要负责人也在用哦~)

安装

1、打开终端执行以下命令

  • 安装到默认位置($HOME/.sdkman)
    curl -s "https://get.sdkman.io" | bash
    
  • 安装到自定义位置
    export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash
    

2、打开一个新终端执行如下命令

source "$HOME/.sdkman/bin/sdkman-init.sh"

3、运行以下代码片段以确保安装成功

sdk version

卸载

1、备份删除程序数据

tar zcvf ~/sdkman-backup_$(date +%F-%kh%M).tar.gz -C ~/ .sdkman
$ rm -rf ~/.sdkman

2、移除SDKMAN环境变量

最后一步涉及从您的.bashrc,.bash_profile.profile 文件中编辑和删除初始化片段 。如果您使用 ZSH,请将其从.zshrc文件中删除。要删除的代码片段如下所示:

#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"

使用

安装sdk

  • 稳定版

    sdk install java
    
  • 指定版本

    sdk install java 17.0.1-tem
    
  • 本地版

    17-zulu必须是唯一的,因为它将作为切换Java版本的名称

    sdk install java 17-zulu /path/to/your/sdk/dir
    

卸载sdk

  • 删除版本

    sdk uninstall java 17.0.1-tem
    
  • 删除本地版

    删除本地版不会删除本地安装的SDK文件

    sdk uninstall java 17-zulu
    

切换sdk

  • 列出所有版本

    sdk list groovy
    

    image.png

  • 列出已安装版本(切换为离线模式)

    # 开启离线模式
    sdk offline enable
    
    sdk list groovy
    
    # 关闭离线模式
    sdk offline disable
    
  • 使用版本

    sdk use java 17-zulu
    
  • 查看当前版本

    sdk current java
    
  • 切换默认版本(永久性,Shell重新打开也会生效)

    sdk default java 17-zulu
    

指定环境

  • 初始化环境

    执行如下命令,会在当前目录下创建一个.sdkmanrc文件,其中记录的当前环境各SDK版本,可手动修改指定

    sdk env init
    
  • 切换环境

    执行如下命令会切换为当前目录下.sdkmanrc文件中指定的各SDK版本

    sdk env
    
  • 清除当前shell使用的env环境

    sdk env clear
    
  • 安装环境

    sdk env install
    

可能存在的问题

1、Mac安装后执行第二步后,每次打开shell会出现以下内容

  • 错误信息
    zsh compinit: insecure directories, run compaudit for list.
    Ignore insecure directories and continue [y] or abort compinit [n]?
    
  • 解决方案
    sudo chmod -R 755 /usr/local/share/zsh
    sudo chown -R "your current login user name":staff /usr/local/share/zsh