You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于在Kubuntu 24.04及Linux环境中使用SDKMAN候选工具的技术问询

关于在Kubuntu 24.04及Linux环境中使用SDKMAN候选工具的技术问询

嗨,我来帮你梳理下SDKMAN候选工具在Linux(包括Kubuntu 24.04)环境下的使用要点,都是实操性的内容:

一、SDKMAN自带候选工具的基础使用

SDKMAN安装完成后,自带的Gradle、Groovy、Maven这些候选工具其实已经可以直接调用了,核心前提是安装脚本自动帮你完成了终端配置——它会把SDKMAN的初始化代码添加到你的~/.bashrc~/.zshrc(或者你当前使用的shell对应的配置文件)里,只要打开新终端就能生效。

日常常用的操作命令:

  • 查看所有已安装/可用的候选工具:sdk list,自带的工具会明确标注出来
  • 临时切换某个工具的版本:sdk use gradle 8.7(替换成你需要的具体版本号)
  • 设置某个工具的默认版本:sdk default gradle 8.7,之后新开终端都会用这个版本

二、能否在Linux桌面全局使用/配置成全局环境变量

默认SDKMAN是用户级别的,仅当前安装用户可用。如果要让所有用户都能使用,需要做两步全局配置:

  1. 全局安装SDKMAN:安装时指定全局目录,比如/usr/local/sdkman,运行安装脚本前先执行:
    export SDKMAN_DIR=/usr/local/sdkman
    
    再运行官方的安装脚本即可。
  2. 添加全局shell初始化:把SDKMAN的初始化代码添加到系统级的shell配置文件,比如/etc/bash.bashrc或者/etc/zsh/zshrc,内容如下:
    export SDKMAN_DIR="/usr/local/sdkman"
    [[ -s "/usr/local/sdkman/bin/sdkman-init.sh" ]] && source "/usr/local/sdkman/bin/sdkman-init.sh"
    
    配置完成后,所有用户打开终端都能直接调用SDKMAN管理的工具,对应的环境变量也会自动加载,和系统自带的命令完全一样。

三、Linux虚拟机上的额外配置需求

一般情况下不需要额外配置,只要你的虚拟机Linux发行版是常见的(比如Ubuntu/Kubuntu、CentOS等),按以下步骤走就行:

  1. 先确保终端有curlzipunzip工具,没有的话用包管理器安装,比如Kubuntu下:sudo apt install curl zip unzip
  2. 运行SDKMAN官方安装脚本,完成后重启终端,或者手动加载配置:source ~/.bashrc
  3. 如果遇到工具调用失败的情况,优先检查:SDKMAN的初始化代码是否正确添加到了shell配置文件,或者全局安装时目录权限是否开放给了所有用户(可以用sudo chmod -R 755 /usr/local/sdkman调整)

四、像普通Linux包一样使用SDKMAN候选工具

SDKMAN管理的工具安装完成后,和你用apt/yum安装的工具完全一样,直接在终端输入命令就能调用,比如:

  • 执行Gradle构建:gradle build
  • 执行Maven打包:mvn clean install

它的优势反而比普通包管理器更强:可以快速切换不同版本,比如测试同一个项目在Gradle 7和Gradle 8下的兼容性,只要用sdk use gradle <版本号>就能秒切,不用卸载重装。

如果你关注开源工具,SDKMAN收录了大量热门开源工具,比如Scala、Kotlin、Ant等,你可以用sdk search <工具名>查找,比如sdk search kotlin,然后用sdk install kotlin一键安装最新版。

备注:内容来源于stack exchange,提问作者Ganapathy S

火山引擎 最新活动