jenv可统一管理Mac多JDK版本,通过global、local、shell命令分别实现全局、项目级和临时切换,并需先安装配置、添加已装JDK路径。

如果您在Mac系统中安装了多个Java开发工具包(JDK)版本,但当前终端或IDE始终调用默认版本,可能是由于JAVA_HOME未正确指向目标JDK,或缺乏统一的版本管理机制。以下是使用jenv管理并切换JDK版本的具体操作步骤:
一、安装jenv
jenv是一个专为macOS和Linux设计的轻量级Java版本管理工具,它通过shell插件方式拦截JAVA_HOME和java命令,实现多JDK无缝切换。安装前需确保已配置Homebrew包管理器。
1、打开终端,执行命令安装jenv:
brew install jenv
2、将jenv初始化脚本添加到shell配置文件中:
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
立即学习“Java免费学习笔记(深入)”;
3、加载jenv插件:
echo 'eval "$(jenv init -)"' >> ~/.zshrc
4、重启终端或执行source ~/.zshrc使配置生效
5、验证安装是否成功:
jenv --version
若返回类似0.5.4的版本号,则表示jenv已就绪
二、添加已安装的JDK到jenv管理列表
jenv本身不下载JDK,仅管理本地已存在的JDK路径。需手动将各JDK根目录(即包含bin/java的目录)注册进jenv,使其识别为可用版本。
1、列出系统中所有已安装JDK路径:
/usr/libexec/java_home -V
2、根据输出结果,逐个添加JDK路径至jenv(以JDK 8、11、17为例):
jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_361.jdk/Contents/Home
3、继续添加其他版本:
jenv add /Library/Java/JavaVirtualMachines/jdk-11.0.20.jdk/Contents/Home
4、再添加JDK 17:
jenv add /Library/Java/JavaVirtualMachines/jdk-17.0.6.jdk/Contents/Home
5、确认所有版本已注册:
jenv versions
此时应看到类似1.8、11、17等带星号标识的版本列表
三、全局切换默认JDK版本
全局设置会影响整个shell会话及所有未指定局部版本的子进程,适用于需要长期固定使用某JDK的开发环境。
1、查看当前全局JDK:
jenv global
2、将全局版本设为JDK 11:
jenv global 11
3、立即生效并验证:
java -version
输出应显示openjdk version "11.0.20"及相关供应商信息
4、如需恢复为JDK 17:
jenv global 17
四、为特定项目目录设置局部JDK版本
局部版本优先级高于全局版本,jenv会在进入该目录时自动切换JAVA_HOME,并在退出时还原。适用于混合JDK版本的多项目工作流。
1、进入目标项目根目录:
cd /path/to/your/project
2、设定当前目录使用JDK 8:
jenv local 1.8
3、jenv会在该目录下生成.hidden文件.jenv-version,内容为1.8
4、验证切换效果:
java -version
5、离开该目录后再次执行java -version,将恢复为全局设定版本
五、临时切换当前shell会话的JDK版本
临时切换仅对当前终端窗口有效,关闭窗口后失效,适合快速测试或调试特定JDK行为。
1、在当前终端中执行:
jenv shell 17
2、确认生效:
echo $JAVA_HOME
输出路径应指向JDK 17的Home目录,例如/Library/Java/JavaVirtualMachines/jdk-17.0.6.jdk/Contents/Home
3、运行java命令验证:
java -version
4、如需切换回其他版本,重复执行jenv shell [version]即可

















