前言
最近博主在薅一个jdk1.8的项目,但是本地只安装了jdk17。。。
然后发现网上许多关于jdk1.8的教程都需要安装Rosetta(一个为m芯片的转译软件),博主是无必要坚决不使用Rosetta的。
So...索性从头开始记录mac m芯片(Apple silicon)机器,配置Maven、JDk1.8等版本共存。
前置工作
本教程已在下述环境测试通过:
- macOS:Sequoia 15.2
- CPU:Apple M3
在此之前,请准备:
- Homebrew已安装完成
安装JDK
JDK17
可以很简单地使用下面命令来安装JDK17:
brew install openjdk@17
安装好后会出现类似下面的提示:
我们重点关注sudo ln -sfn /usr/local/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
这行,每个人输出可能有一些不一样,找到类似这行的,复制下来执行它。
然后执行ls /Library/Java/JavaVirtualMachines
,查看到有openjdk-17.jdk
,即代表路径已经配置正确。
JDK1.8
由于homebrew的仓库不提供jdk1.8的Apple silicon版本,所以我们使用zulu的。
使用brew install --cask zulu@8
即可安装Apple silicon版本的jdk1.8,无需安装Rosetta。
安装完成后,使用ls /Library/Java/JavaVirtualMachines
,查看到有zulu-8.jdk
,即代表路径已经配置正确。
其他JDK
你可以使用类似上面的两种方法,或者,你也可以很容易地在Google中找到安装其他jdk版本的教程。
比如说,你可以使用brew install openjdk@版本
或者brew install --cask zulu@版本
。
JDK多版本共存
Shell篇
由于mac的默认shell是zsh,so...我们使用~/.zshrc
配置文件。
打开mac终端,使用/usr/libexec/java_home -V
,查看jdk存放的目录。
比如:
这里查看到系统已经正确识别出我安装好了jdk17和jdk1.8。
同理,我们使用/usr/libexec/java_home -v 17
和/usr/libexec/java_home -v 1.8
可以动态地获取这两个jdk的路径。
因此,我们可以使用这个特性来设定我们的~/.zshrc
文件。
编辑~/.zshrc
,使用nano ~/.zshrc
:
如果有其他的jdk版本,可以参考上述进行修改或者新增。
然后执行source ~/.zshrc
使配置生效。
然后,我们可以很方便地使用jdk8
和jdk17
,轻松地切换不同的jdk版本,如图:

安装Maven
我们可以很轻松地使用brew install maven
安装maven。
在安装好后,配合上述的教程,我们使用jdk8
或者jdk17
或者你自行设置的alias,就可以很轻松地切换jdk版本。
我们使用mvn -version
也可以验证,已经匹配上了对应的jdk版本。