目录
- 一、目标
- 二、查看已安装的 JDK
- 三、使用 jenv 管理 Java 版本
- 1. 安装 jenv
- 2. 配置 Shell 环境
- 3. 添加已安装的 JDK
- 4. 查看可用版本
- 5. 切换 Java 版本
- 6. 验证版本
- 四、常见问题
- 1. 权限问题
- 2. Shell 配置文件选择错误
- 五、注意事项
- 六、附录:常见 JDK 安装路径
一、目标
在 macOS 系统中通过 jenv 管理多个 Java 版本,实现灵活切换。
二、查看已安装的 JDK
/usr/libexec/java_home -V
输出示例:
Matching Java Virtual Machines (3):17.0.15 (arm64) "Oracle Corporation" - "Java SE 17.0.15" /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home1.8.381.09 (arm64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home1.8.0_381 (arm64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
注意:
/Library/Java/JavaVirtualMachines/jdk-1.x.x.jdk/Contents/Home
是完整的 JDK 安装路径,推荐用于开发。/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
是浏览器插件路径,不建议用于开发。
三、使用 jenv 管理 Java 版本
1. 安装 jenv
brew install jenv
2. 配置 Shell 环境
-
Zsh 用户(macOS 默认):
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc echo 'eval "$(jenv init -)"' >> ~/.zshrc source ~/.zshrc
-
Bash 用户:
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(jenv init -)"' >> ~/.bash_profile source ~/.bash_profile
3. 添加已安装的 JDK
jenv add /Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
4. 查看可用版本
jenv versions
5. 切换 Java 版本
-
全局切换:
jenv global 17
-
当前目录切换:
jenv local 1.8
6. 验证版本
java -version
四、常见问题
1. 权限问题
-
错误示例:
zsh: permission denied: ~/.bash_profile
-
解决方法:
-
使用
open -e ~/.bash_profile
编辑文件(若文件不存在会自动创建)。 -
修改文件权限:
chmod 644 ~/.bash_profile
-
2. Shell 配置文件选择错误
-
Zsh 用户:使用
.zshrc
或.zsh_profile
。 -
Bash 用户:使用
.bash_profile
或.bashrc
。 -
检查当前 Shell:
echo $SHELL
五、注意事项
-
路径一致性:
jenv add
的路径需与实际 JDK 安装路径一致(可通过/usr/libexec/java_home -V
查看)。 -
生效方式:修改配置后需运行
source ~/.zshrc
或重启终端。 -
IDE 配置:IntelliJ IDEA 等 IDE 需手动指定 JDK 路径,与系统环境无关。
-
卸载 jenv:
brew uninstall jenv
六、附录:常见 JDK 安装路径
# JDK 8
/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home# JDK 17
/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
通过以上方法,你可以轻松管理多个 Java 版本,并根据项目需求灵活切换!