jenv介绍
jenv 是一个 Java 版本管理工具,类似于 pyenv 管理 Python、nvm 管理 Node.js。
核心功能:
- 同时管理多个 JDK:你可以在一台机器上安装 JDK 8、11、17 等多个版本。
- 灵活切换版本:
- 全局默认版本(整个系统终端都用这个)
- 当前 shell 临时版本
- 某个项目目录专属版本
- 无需修改系统 JAVA_HOME:通过
shims机制,让java、javac命令自动指向你指定的版本。 - 兼容 macOS/Linux,轻量、开源。
1、安装jenv
brew install jenv
2、配置 jenv
在 ~/.zshrc 加入:
objectivec
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
# 这里需注意,要移除原有的 jdk环境变量配置
生效:
source ~/.zshrc
# 这里会输出 env has been updated, process to refresh plugin links
# 只是告诉你 jenv 检测到自己有更新,需要刷新插件链接,这个是正常信息,不影响使用。
检查是否安装成功
objectivec
jenv version
# 会输出类似 system (set by /Users/{User}/.jenv/version)
# 安装成功, jenv 当前正在使用系统自带的 JDK(macOS 自带或者你之前默认安装的那个)
3、安装不同版本的JDK
直接通过Oracle官网下载.dmg 安装即可

- 如果是
arm64→ Apple Silicon 芯片 (M1/M2 等) → 选择 aarch64 版本 - 如果是
x86_64→ Intel 芯片 → 选择 x64 版本
4、获取安装路径
jdk的默认安装路径为
objectivec
/Library/Java/JavaVirtualMachines/{version}/Contents/Home
也可通过以下安装命令查看
objectivec
/usr/libexec/java_home -V
#会输出
17.0.19 (arm64) "Oracle Corporation" - "Java SE 17.0.19" /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
1.8.0_411 (arm64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
5、把 JDK 添加到 jenv
objectivec
jenv add /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
检查是否添加成功
objectivec
jenv versions
# 会输出类似
* system (set by /Users/{User}/.jenv/version)
1.8
1.8.0.411
17
17.0
17.0.19
oracle64-1.8.0.411
oracle64-17.0.19
# 版本号会是多个,实际只安装了1.8.0.411和17.0.19 ,jenv会根据JDK内部的release文件和版本号,自动生成一些别名方便匹配命令
6、刷新 jenv shims 并重启 shell
objectivec
jenv rehash
exec $SHELL
# 如果不执行这两步可能会导致后续配置默认jdk版本不生效,每次add新的jdk版本都要执行
7、配置jdk版本
objectivec
# 1、配置全局jdk版本
jenv global 1.8.0.411
# 2、临时切换(当前终端)
jenv shell 1.8.0_411
# 3、项目目录切换 JDK
cd {project_path}
jenv local 1.8.0_411
检查是否成功
objectivec
java -version
# 输出类似表示全局jdk版本配置成功
java version "1.8.0_411"
Java(TM) SE Runtime Environment (build 1.8.0_411-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.411-b09, mixed mode)
写在最后
objectivec
# jenv 命令
1、 基本命令
jenv version 查看当前使用的 JDK 版本 jenv version 输出 17.0.19 (set by ~/.jenv/version)
jenv versions 列出已注册的所有 JDK 版本 jenv versions 输出 system, 1.8.0_411, 17.0.19
jenv doctor 检查 jenv 配置问题 jenv doctor 会提示 PATH 或 shims 是否正确
2、添加 / 删除 JDK
jenv add <JDK_PATH> 添加 JDK 到 jenv 管理 jenv add /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
jenv remove <version> 从 jenv 移除某个版本 jenv remove 1.8.0_411
3、切换版本
jenv global <version> 设置全局默认 JDK jenv global 17.0.19
jenv local <version> 为当前目录设置 JDK(会生成 .java-version 文件) jenv local 1.8.0_411
jenv shell <version> 临时切换当前终端 JDK jenv shell 17
| 优先级:shell > local > global
4、工具和管理命令
jenv rehash 刷新 shims,添加新 JDK 或安装新工具后必须执行 jenv rehash
jenv enable-plugin <plugin> 启用插件,比如 maven、gradle jenv enable-plugin maven
jenv disable-plugin <plugin> 禁用插件 jenv disable-plugin maven
jenv doctor 检查 jenv 配置健康状态 jenv doctor