Mac M系列芯片(M1/M2)安装JDK并动态切换JDK版本

0. 引言

Mac M系列芯片(M1/M2)因为采用了ARM架构,所以传统方式安装的JDK已经不再适用,当然M系列芯片也支持原有AMD架构的JDK运行,但是运行速度远不如适配了ARM架构的了。

所以今天就来带大家安装基于ARM架构的JDK

1. 下载镜像

1.1 Oracle官方镜像源

官方提供的ARM版本镜像源,可选择你需要的版本进行下载安装

Oracle官方: JDK1.8下载地址

Oracle官方: JDK11下载地址

Oracle官方: JDK17下载地址

我们这里以在Mac上安装JDK11为例,先选择JDK版本,然后再选择系统,最后选择需要的镜像,如下所示提供了压缩包形式或者dmg包形式。这里我们选择下载dmg包形式。

1.2 azul镜像源

azul是针对JDK for ARM适配的最快的了,早在Oracle之前就已经推出了JDK的ARM版。相对官方适配,提供了更多JDK版本的ARM源。

OpenJdk Download | Java 7, Java 8, Java 11, Java 13, Java 15, Java 17, Java 19 - Linux, Windows and macOS

2 安装

2.1 dmg包安装

1. 双击刚刚下载的dmg安装包

2. 双击pkg图标,出现安装界面,点击继续即可

3. 安装成功

3 设置环境变量并配置切换版本命令

如果和我一样安装了多个版本的JDK,需要进行切换时,那么可以按照如下步骤操作

  1. 首先要知道你jdk的安装目录,mac下的jdk安装目录如下
    /Library/Java/JavaVirtualMachines

  2. 修改环境变量
    vi ~/.bash_profile
  3. 追加以下内容
    # <- Switch Java Version Begin ->
    export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
    export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
    export JAVA_17_HOME=$(/usr/libexec/java_home -v17)
    alias java8='export JAVA_HOME=$JAVA_8_HOME'
    alias java11='export JAVA_HOME=$JAVA_11_HOME'
    alias java17='export JAVA_HOME=$JAVA_17_HOME'
    # default to Java 8
    java8
    # <- Switch Java Version End ->
    
    export PATH="$PATH:$JAVA_HOME/bin"
    export CLASSPATH="$JAVA_HOME/lib"
  4. 让环境变量生效
    # 注意这里要让/etc/profile也生效,否则可能切换jdk失败
    source /etc/profile ~/.bash_profile
  5. 查看当前jdk版本并切换至JDK17
    java -version
    java17
    java -version

如果动态切换版本不生效,首先确保修改bash_profile文件后执行的是​​source /etc/profile ~/.bash_profile​​​,如果还不生效则修改​​.zshrc​​文件

vi .zshrc

在最后添加上,让bash_profile文件的配置内容永久生效

source ~/.bash_profile

关于/usr/libexec/下的可执行文件java_home,可以根据版本获取JAVA_HOME目录,感兴趣的可以看下这篇博客mac配置JAVA_HOME最佳方法_mac配置javahome-CSDN博客

参考链接

mac pro M1(ARM)安装:jdk|java|动态切换jdk版本_wx63dbcdbe949dc的技术博客_51CTO博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值