概要
在 macos 上安装了多个 jdk 后,可以通过系统自带的 /usr/libexec/java_home
工具来查询并切换不同版本的 java。只需在终端中执行 /usr/libexec/java_home -v
列出所有已安装的 jdk,然后将你想使用的版本路径赋值给环境变量 java_home
,并将其添加到 path
。最后,将这些设置写入你的 shell 启动文件(如 ~/.zshrc
或 ~/.bash_profile
),即可在每次新开终端时自动生效。
一、查询已安装的 jdk 版本
打开 终端,输入:
/usr/libexec/java_home -v
该命令会输出所有已安装的 java 虚拟机列表及其安装路径,例如:
matching java virtual machines (3): 17.0.2 (x86_64) "oracle corporation" - "java se 17.0.2" /library/java/javavirtualmachines/jdk-17.0.2.jdk/contents/home 1.8.0_202 (x86_64) "oracle corporation" - "java se 8" /library/java/javavirtualmachines/jdk1.8.0_202.jdk/contents/home
上面是一个示例,像我的电脑上装的jdk就有点乱了
二、临时切换 jdk 版本
如果仅想在当前终端会话中切换版本,可直接运行:
export java_home=$(/usr/libexec/java_home -v 1.8) export path="$java_home/bin:$path"
-v 1.8
可替换为你需要的版本号(如-v 17
、-v 11.0.2
等)([stack overflow][2])- 切换后,执行
java -version
即可验证当前使用的 java 版本
三、永久切换 jdk 版本
为了在每次打开终端时都自动使用同一版本,需要将上述环境变量配置写入 shell 启动文件。
1. 确定使用的 shell
- macos 默认从 macos catalina 起采用 zsh,启动文件为
~/.zshrc
。 - 如果你使用的是 bash,则应编辑
~/.bash_profile
或~/.bashrc
。
2. 编辑启动文件
以 zsh 为例,打开或创建 ~/.zshrc
:
vim ~/.zshrc
或者
nano ~/.zshrc
在文件末尾添加:
# 指向 java 17(示例)像我的电脑上jdk装的有点乱了,可以指定特定的版本比如17.0.15 export java_home=$(/usr/libexec/java_home -v 17.0.15) export path="$java_home/bin:$path"
保存并退出(ctrl+x
→ y
→ enter
/获取:wq保存(vim的操作))
3. 使配置生效
source ~/.zshrc java -version
此时终端应显示你指定的 java 版本信息。
四、使用别名或脚本快速切换(可选)
如果经常在不同项目间切换 jdk,可以在启动文件中定义别名或函数,例如:
# ~/.zshrc 中 alias java8='export java_home=$(/usr/libexec/java_home -v 1.8); export path="$java_home/bin:$path"; java -version' alias java17='export java_home=$(/usr/libexec/java_home -v 17); export path="$java_home/bin:$path"; java -version'
这样在终端中仅需执行 java8
或 java17
即可快速切换版本。
五、可以尝试:使用 sdkman!
sdkman能让你在 unix 系统上轻松管理多个软件开发工具包,像 apt、pip、rvm 和 rbenv一样工具
也可以理解为node的版本管理的工具nvm一样的工具软件
sdkman! 是一个管理多种 sdk(包括 java)版本的工具。安装后可用一条命令列出并切换 jdk:
sdk list java sdk use java 17.0.2-tem
这种方式在管理众多 java 发行版(oracle、temurin、amazon corretto 等)时尤为方便。
到此这篇关于mac环境下jdk版本切换的详细指南的文章就介绍到这了,更多相关mac环境jdk版本切换内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论