如何在Apple Silicon架构的MacOS上切换Azul Zulu Java版本(从默认Java 11降级至Java 8)
如何在Apple Silicon架构的MacOS上切换Azul Zulu Java版本(从默认Java 11降级至Java 8)
我来帮你搞定这个Java版本切换的问题,在Apple Silicon的Mac上用Azul Zulu切换版本其实挺简单的,分两种常用场景来操作:
一、临时切换(仅当前终端会话生效)
如果你只是想在当前打开的终端里临时用Java 8,不用改全局配置,直接执行以下步骤:
- 先确认Java 8的安装路径,执行命令:
你会得到类似/usr/libexec/java_home -v 1.8/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home的路径。 - 接着在终端里设置临时的环境变量:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) export PATH=$JAVA_HOME/bin:$PATH - 最后验证是否切换成功:
这时候应该会显示Zulu 8的版本信息了。注意:这种切换只在当前终端窗口有效,关掉窗口后会自动回到默认的Java 11。java -version
二、永久切换(所有终端会话默认使用Java 8)
如果想让每次打开终端都默认用Java 8,需要修改shell的配置文件,Mac现在默认用的是zsh,如果你用的是bash也没关系,对应操作如下:
针对Zsh用户(默认shell)
- 打开zsh的配置文件:
open ~/.zshrc - 在文件的末尾添加以下两行内容:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) export PATH=$JAVA_HOME/bin:$PATH - 保存文件后,执行命令让配置立即生效:
source ~/.zshrc - 验证版本:
现在不管打开新的终端还是重启电脑,默认都是Java 8了。java -version
针对Bash用户
- 打开bash的配置文件(如果没有
.bash_profile就用.bashrc):open ~/.bash_profile - 同样在末尾添加那两行环境变量配置,保存后执行:
source ~/.bash_profile - 验证版本即可。
额外技巧:快速切换多个版本
如果你需要经常在Java 8和11之间切换,可以在shell配置文件里加几个别名,这样一键就能切换:
在.zshrc或.bash_profile里添加:
# Java版本切换别名 alias java8='export JAVA_HOME=$(/usr/libexec/java_home -v 1.8); export PATH=$JAVA_HOME/bin:$PATH' alias java11='export JAVA_HOME=$(/usr/libexec/java_home -v 11); export PATH=$JAVA_HOME/bin:$PATH'
保存生效后,以后在终端输入java8就切到Java 8,输入java11就切回Java 11,非常方便。
备注:内容来源于stack exchange,提问作者John Little




