MacOS Apple M1 安装ARM架构的JDK及动态切换版本

JDK下载安装:

咱就是说,ARM版本的JDK就是一个字,真特么快,想变快吗,赶紧下载叭!!

1、下载地址:https://www.azul.com/downloads/?package=jdk
筛选一下MacOS下ARM架构的JDK版本,找到对应版本下载就行了
在这里插入图片描述
在这里插入图片描述

2、下载好以后打开,一直点击下一步即可
其中JDK8和11是在Zulu下载的,17版本的是在官网下载的
在这里插入图片描述
点击继续
在这里插入图片描述
安装好以后去下面的目录查看一下,依次执行下面的命令

打开终端输入

cd /Library/Java/JavaVirtualMachines

查看当前目录下有哪些JDK版本

ls

可以看到你安装好的版本信息,这里需要你复制一下对应的JDK版本名称,因为下面需要配置环境。其实MacOS不需要配置也是可以的,安装好以后输入java -version就可以看到已经自动识别到了,但是为了更方便的切换默认版本,配置一下也无妨。
在这里插入图片描述

3、打开终端输入下面三个命令,测试是否安装成功

java
javac
java -version

出现以下信息表示安装成成功
在这里插入图片描述

配置环境:

1、打开终端输入以下命令

# 编辑配置文件
vim ~/.bash_profile

2、在配置文件中新增以下内容,下面的版本号换成上面查出来的版本即可,如果有多个JDK的版本就把下面的版本号换一下即可

# 配置JDK路径
export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
export JAVA_11_HOME=/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home
export JAVA_17_HOME=/Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/HomeCLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.# 设置默认JDK版本
export JAVA_HOME=$JAVA_11_HOME# 配置alias命令可以动态切换JDK版本  
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
alias jdk11="export JAVA_HOME=$JAVA_11_HOME"
alias jdk17="export JAVA_HOME=$JAVA_17_HOME"export JAVA_HOME
export PATH
export CLASSPATH# maven配置
export MAVEN_HOME=/Users/itzhuzhu/Desktop/Java/maven/apache-maven-3.8.4
export PATH=$PATH:$MAVEN_HOME/bin         

3、保存退出文件后执行下面的(立即将配置文件生效的),退出使用:wq!

source ~/.bash_profile

4、验证配置(配置文件已经配置了alias,所以直接输入jdk名就可以切换版本了)
能够切换成功就说明配置可以了

itzhuzhu@itzhuzhudeMacBook-Pro JavaVirtualMachines % jdk8
itzhuzhu@itzhuzhudeMacBook-Pro JavaVirtualMachines % java -version  
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (Zulu 8.58.0.13-CA-macos-aarch64) (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (Zulu 8.58.0.13-CA-macos-aarch64) (build 25.312-b07, mixed mode)itzhuzhu@itzhuzhudeMacBook-Pro JavaVirtualMachines % jdk11        
itzhuzhu@itzhuzhudeMacBook-Pro JavaVirtualMachines % java -version
openjdk version "11.0.13" 2021-10-19 LTS
OpenJDK Runtime Environment Zulu11.52+51-CA (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM Zulu11.52+51-CA (build 11.0.13+8-LTS, mixed mode)itzhuzhu@itzhuzhudeMacBook-Pro JavaVirtualMachines % jdk17        
itzhuzhu@itzhuzhudeMacBook-Pro JavaVirtualMachines % java -version
java version "17.0.1" 2021-10-19 LTS
Java(TM) SE Runtime Environment (build 17.0.1+12-LTS-39)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.1+12-LTS-39, mixed mode, sharing)
itzhuzhu@itzhuzhudeMacBook-Pro JavaVirtualMachines % 

注意:如果编辑文件时提示您不是文件“.bash_profile”的所有者,因此没有权限写到该文件。执行以下命令添加权限再编辑bash_profile文件

# 这里的itzhuzhu是我的用户名,你把它改成你的用户名即可
/usr/bin/sudo /bin/chmod u+rwx /Users/itzhuzhu/.bash_profile

5、查看JDK路径

echo $JAVA_HOME

卸载JDK:

打开终端输入

cd /Library/Java/JavaVirtualMachines

查看当前目录下有哪些JDK版本

ls

卸载指定版本

sudo rm -rf /Library/Java/JavaVirtualMachines/版本号# 例如
sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0_311.jdk

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/572155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

梯度下降和EM算法,kmeans的em推导

I. 牛顿迭代法给定一个复杂的非线性函数f(x),希望求它的最小值,我们一般可以这样做,假定它足够光滑,那么它的最小值也就是它的极小值点,满足f′(x0)0,然后可以转化为求方程f′(x)0的根了。非线性方程的根我…

Spring事务详解与使用

Spring事务核心对象 J2EE开发使用分层设计的思想进行,对于简单的业务层转调数据层的单一操作,事务开启在业务层或者数据层并无太大差别,当业务中包含多个数据层的调用时,需要在业务层开启事务,对数据层中多个操作进行组…

黑马程序员博学谷Java就业班课程

1、资料全无加密,可任意试看 2、内容包括课程资料 地址:https://www.boxuegu.com/class/outline-1112.html

设计模式一の设计模式详解

一、设计模式定义 设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;…

Spring模板对象

Spring模块对象: 把共性的方法抽取出来固定为一个模板,后续再操作只需要填充内容即可。 比如:淘宝每次买东西都要填写地址,只是每次买的东西不一样,所以可以做一个默认地址,每次买东西都要去选商品就行了,不…

SpringMVC入门案例

SpringMVC 概述: SpringMVC是一种基于Java实现MVC模型的轻量级Web框架 三层架构 表现层:负责数据展示业务层:负责业务处理数据层:负责数据操作 MVC(Model View Controller):一种用于设计创建…

SpringMVC请求中的普通、POJO、数组集合类型传参与类转换器

SpringMVC将传递的参数封装到处理器方法的形参中,达到快速访问参数的目的。 普通类型参数传参 参数名与处理器方法形参名保持一致 访问URL: http://localhost/requestParam1?nameitzhuzhu&age14 RequestMapping("/requestParam1")publi…

SpringMVC-HandlerInterceptor拦截器的使用与参数详解

拦截器概念: 拦截器( Interceptor)是一种动态拦截方法调用的机制,请求处理过程解析核心原理: AOP思想拦截器链:多个拦截器按照一定的顺序,对原始被调用功能进行增强 作用: 在指定的…

使用FindBugs-IDEA插件找到代码中潜在的问题

另一篇使用文档,参照:https://www.cnblogs.com/huaxingtianxia/p/6703315.html 我们通常都会在APP上线之后,发现各种错误,尤其是空指针异常,这些错误对于用户体验来说是非常不好的,但其实大部分的问题,我们都能够提前发现. 在编写代码的过程中,可能不会时…

霍炬:再谈百度:KPI、无人机,以及一个必须给父母看的案例

霍炬:再谈百度:KPI、无人机,以及一个必须给父母看的案例 作者:霍炬。 原文链接:http://www.donews.com/idonews/article/8147.shtm没想到我之前的一篇关于百度的文章引起了这么大的反馈。非常多朋友称赞我写的好&…

使用SpringMVC模拟文件上传与下载案例

文件上传下载 SpringMVC封装了Tomcat的上传文件功能 MultipartResolver接口 MultipartResolver接口定义了文件上传过程中的相关操作,并对通用性操作进行了封装MultipartResolver接口底层实现类CommonsMultipartResovlerCommonsMultipartResovler并未自主实现文件上…

JSR表单校验框架

表单校验的重要性: 表单校验保障了数据有效性、安全性 不适用表单检验数据可以随意输入,导致错误的结果。后端表单校验的重要性,比如输入框采集成绩,如果前端做了检验,但是用户比较牛逼,他在地址栏上直接加…

使用Phantom omni力反馈设备控制机器人

传统的工业机器人普遍采用电机 、齿轮减速器 、关节轴三者直接连接的传动机构,这种机构要求电机与减速器安装在机械臂关节附近,其缺点是对于多关节机械臂,下一级关节的电机与减速器等驱动装置成为上一级关节的额外负载 。这一额外负载带来的负…

Go_配置系统环境MacOS(M1)

在MacOS下和JDK一样,配不配环境其实MacOS都是可以检测的到的,安装好以后直接输入go version是一样可以的,因为都是使用开发工具的,在开发工具里配置的话是样的,如果有习惯的话就配置一下吧 下载安装及配置环境&#xf…

Go_数据类型

数据类型: 计算机存储设备最小信息单位是位(bit),最小的存储单元是字节(byte),占用字节的不同,所表示能存储的数据长度不同。数据类型用来说明数据的数据的结构,便于后面…

HashMap之扰动函数和低位掩码

我们都知道,hashMap在实现的时候,为了寻找在数组上的位置,主要做了两件事 int hash hash(key); int i indexFor(key, table.length); 这个时候得到i才是数组上的位置。 这两个方法详解如下 JDK8对扰动函数的修改,只进行了一次移…

NE2018届校招内推笔试——数据挖掘

【单选题|2分/题】 1、在只有两类的情况下,二维特征向量通过共享相同的协方差矩阵的正态分布生成,其中协方差矩阵为: 均值向量分别为:,则根据贝叶斯分类,样本分类为:() A…

不满足依赖关系

今晚上脑残,替换了实体,把报错的也都替换完成了,但是运行报错: 大概的意思就是说不满足XXXXXX依赖关系,但是找了半天都没有找到,最后是mapper的实体类全路径替换的时候,脑残在后面加上了.java。…

Go_切片(初始化、遍历、截取、修改、append、copy、切片作为函数参数、切片求和、切片求最大值)

切片: 切片的长度是不固定的,可以追加数据,可以理解是一个动态数组,切片的底层是一个结构体切片类型(slice)本身并不是动态数组或数组指针。它内部通过指针引用底层数组,设定相关属性将操作限定…

阿里巴巴Java开发手册——速读记录

本随笔基于阿里巴巴Java开发手册V1.2,陆陆续续记录一些现阶段能理解的,有启发的内容,并将持续更新 最佳实践——插件使用已经发布为随笔!http://www.cnblogs.com/jiangbei/p/7668654.html 一、编程规范 1.命名规范 (1&…