Ubuntu系统下如何永久配置sdkman及sdkman安装的JDK环境变量
解决方法
核心原因是sdkman的初始化脚本没有被添加到shell的启动配置文件中,导致新会话无法自动加载相关环境,按以下步骤配置即可永久生效:
步骤1:确认当前使用的shell
执行以下命令查看你正在使用的shell类型:
echo $SHELL
常见输出对应shell类型:
- 输出
/bin/bash:对应Bash shell - 输出
/bin/zsh:对应Zsh shell(macOS Catalina及以上版本默认shell) - 输出
/usr/bin/fish:对应Fish shell
步骤2:将初始化命令添加到对应配置文件
根据你的shell类型,编辑对应启动配置文件,在文件末尾添加sdkman初始化语句:
若使用Bash
- Linux系统编辑
~/.bashrc文件,macOS旧版本(Catalina之前)编辑~/.bash_profile文件 - 末尾添加内容:
source "$HOME/.sdkman/bin/sdkman-init.sh"
- 保存后执行以下命令让配置立即生效:
source ~/.bashrc # 如果你是macOS旧版本Bash则执行 source ~/.bash_profile
若使用Zsh
- 编辑
~/.zshrc文件 - 末尾添加内容:
source "$HOME/.sdkman/bin/sdkman-init.sh"
- 保存后执行以下命令让配置立即生效:
source ~/.zshrc
若使用Fish
- 编辑
~/.config/fish/config.fish文件 - 末尾添加内容:
set SDKMAN_DIR "$HOME/.sdkman" source "$SDKMAN_DIR/bin/sdkman-init.fish"
- 保存后重启终端即可生效
步骤3:验证配置
新开终端后执行以下命令验证配置是否生效:
- 验证sdkman可用:执行
sdk version,正常会返回sdkman版本信息 - 验证JDK自动加载:执行
java -version,返回你之前设置的默认JDK版本即可 - 如果需要指定默认JDK版本,执行
sdk default java <对应JDK版本号>即可,sdkman会自动配置对应JAVA_HOME和PATH变量,无需手动修改JDK相关环境配置。
内容的提问来源于stack exchange,提问作者Masi Boo
相关产品推荐
相关产品推荐

