2024年最新MacBook苹果电脑安装JDK8、JDK11教程,配置环境变量 + 快速切换JDK版本

news2024/10/6 8:28:21

本帖发布日期:2024年01月26日,全网最新教程整理。

1、概述

本文主要为在MacBook苹果电脑系统下安装JDK及环境变量配置。

教程并非原创,摘抄自互联网,本人作为更新+整理+亲测。(也算给自己记录一贴)

本帖分为四步:

  1. 在Oracle官网下载JDK
  2. 安装JDk
  3. 配置环境变量
  4. 快速切换

JDK是Java开发工具包(Java Development Kit)。

  • JDK8是Java开发工具包的第8个版本,于2014年发布。它引入了一些重要的新功能,如Lambda表达式、函数式接口、Stream API和新的日期/时间API等。
  • JDK11是Java开发工具包的第11个版本,于2018年发布。它提供了一些重要的改进,如模块化系统、增强的性能、新的HTTP客户端API和局部变量类型推断等。
  • JDK21是一个未来可能存在的版本,目前还没有发布。

JavaSE、JavaEE和JavaME是Java平台的不同配置和规范。

  • JavaSE(Java Standard Edition)是Java平台的标准配置,提供了基本的Java编程环境和核心API,适用于通用的桌面、服务器和嵌入式应用程序开发。
  • JavaEE(Java Enterprise Edition)是Java平台的企业级配置,提供了用于开发大型企业应用程序的扩展API和服务,包括Web应用程序开发、企业级数据库访问、消息队列和分布式计算等。
  • JavaME(Java Micro Edition)是Java平台的微型配置,专门用于嵌入式设备和移动设备的应用程序开发,如手机、智能卡和小型传感器等。

总结:JDK8、JDK11和JDK21是Java开发工具包的不同版本,而JavaSE、JavaEE和JavaME是Java平台的不同配置和规范,用于不同类型的应用程序开发。

另外,刚接触Mac的小伙伴你需要知道:

        DMG文件通常用作Mac应用程序的安装包。是苹果电脑上常见的磁盘映像文件格式,全称为Disk Image。


2、下载JDK(官网)

2.1、官网下载dmg安装包

下载地址

选择需要安装的jdk版本,我需要的是JDK8版本,这里我选择Java SE 8 (8u211 and later),点击进入下载页面。

详细步骤可见《JDK1.8下载、安装与配置完整图文教程》

2.2、根据对应系统选择下载安装包

这里我选择的是 macOS x64 DMG Installer 点击后面的下载dmg文件

                        这里友情提示:有时候网络延迟,可能不会立即响应下载,需要耐心等一会

,弹出对话框 选择勾选同意协议。 

 如果提示需要登录Oracle账号,这里提供一个:

# 提醒:为了大伙的方便,请不要随便用该邮箱重新注册Oracle账号!
账号:yawoniu@163.com
密码:Oracle.123

感谢好心人,摘自《快速搞定 MAC 系统 JDK 安装及环境变量配置,让你的开发之路更加顺畅》

2.3、下载成功 找到安装包

之后在 访达 下载 中找到,下载好的jdk是这样式的

 3、安装JDK

3.1、打开安装包

我已经安装好8版本了,这里我以jdk11为例。

3.2、安装

点击继续

弹出窗口,输入密码(同锁屏密码)

安装完成,关闭。

4、配置环境变量

4.1、查看安装路径

打开终端窗口,

终端窗口一般在 启动台-其他 文件夹里。

执行如下命令:

# 进入 JDK 安装目录
cd /Library/Java/JavaVirtualMachines

# 查看文件
ls
➜  jdk-1.8.jdk	jdk-11.jdk

# 查看路径
pwd
➜  /Library/Java/JavaVirtualMachines

4.2、配置环境变量文件

# 进入当前用户的 home 目录
cd /Users/xxx    xxx改为自己的电脑用户名称

# 输入
cd ~

# 打开环境变量配置文件
vi ~/.bash_profile
# 注意这里用touch命令第一次配置环境变量会报错:.bash_profile does not exist.,意思需要创建文件 直接vi、vim都行。

command+V粘贴到文件中,注意JAVA_HOME替换为自己目录 上面使用pwd已经查了

这里我写好两套代码:

        4.2.1.如果只安装一个版本jdk 如jdk8 复制下面代码粘贴到配置文件中即可。

# JDK Config
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
CLASS_PATH="$JAVA_HOME/lib"
PATH="$PATH:$JAVA_HOME/bin"

       4.2.2.如果想安装多个版本,比如像我一样安装jdk8和11,用下面这段代码。

# JDK Config
JAVA_HOME_8=/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
JAVA_HOME_11=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home

export JAVA_HOME=$JAVA_HOME_8
alias jdk8="export JAVA_HOME=$JAVA_HOME_8 && echo current JDK has switched to oracle jdk version 1.8. && java -version"
alias jdk11="export JAVA_HOME=$JAVA_HOME_11 && echo current JDK has switched to openjdk version 11. && java -version"

CLASS_PATH="$JAVA_HOME/lib"
PATH="$PATH:$JAVA_HOME/bin"

⚠️:配置文件中alias定义的别名jdk8、jdk11是用来切换jdk版本的。

按下ESC键盘   输入:wq   保存退出

4.3、将配置生效

# 配置文件立即生效
source ~/.bash_profile

# 验证:查看 JAVA_HOME 目录
echo $JAVA_HOME

# 查看 JDK 版本信息
java -version

返回查看版本信息,即安装成功。

5、快速切换jdk版本

在上面的4.2.2中已配置好环境变量,直接切换即可。

xxx@xxxdeMacBook-Air ~ % jdk8
current JDK has switched to oracle jdk version 1.8.
java version "1.8.0_391"
Java(TM) SE Runtime Environment (build 1.8.0_391-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.391-b13, mixed mode)

xxx@xxxdeMacBook-Air ~ % java -version
java version "1.8.0_391"
Java(TM) SE Runtime Environment (build 1.8.0_391-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.391-b13, mixed mode)

xxx@xxxdeMacBook-Air ~ % jdk11
current JDK has switched to openjdk version 11.
java version "11.0.21" 2023-10-17 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.21+9-LTS-193)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.21+9-LTS-193, mixed mode)

xxx@xxxdeMacBook-Air ~ % java -version
java version "11.0.21" 2023-10-17 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.21+9-LTS-193)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.21+9-LTS-193, mixed mode)

原文《Mac中安装JDK1.8和JDK11双版本并任意切换》

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

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

相关文章

python之异常的捕获、模块、包

目录 1.了解异常 2.异常的捕获 3.异常的传递性 4.模块的概念和导入 5.自定义模块并导入 6.自定义python包 7.安装第三方包 1.了解异常 2.异常的捕获 直接报错了,说明我们捕获的就是名字的异常而没有捕获除0的异常。 这样就可以打印出异常 捕获全部的异常可以使…

HTML-表单

表单 概念&#xff1a;一个包含交互的区域&#xff0c;用于收集用户提供的数据。 1.基本结构 示例代码&#xff1a; <form action"https://www.baidu.com/s" target"_blank" method"get"><input type"text" name"wd&q…

使用代码取大量2*2像素图片各通道均值,存于Exel文件中。

任务是取下图RGB各个通道的均值及标签&#xff08;R, G&#xff0c;B&#xff0c;Label&#xff09;,其中标签由图片存放的文件夹标识。由于2*2像素图片较多&#xff0c;所以将结果放置于Exel表格中&#xff0c;之后使用SVM对他们进行分类。

20.云原生之GitLab集成Runner

云原生专栏大纲 文章目录 GitLab RunnerGitLab Runner 介绍GitLab Runner分类GitLab Runner工作流程 Gitlab集成Gitlab RunnerGitLab Runner 版本选择Runner在CitLab中位置专用Runner在gitlab中位置群组Runner在gitlab中位置共享Runner在gitlab中位置 GitLab部署Gitlab Runner…

Pandas ------ 向 Excel 文件中写入含有 multi-index 和 Multi-column 表头的数据

Pandas ------ 向 Excel 文件中写入含有 multi-index 和 Multi-column 表头的数据 引言正文 引言 之前在 《pandas向已经拥有数据的Excel文件中添加新数据》 一文中我们介绍了如何通过 pandas 向 Excel 文件中写入数据。那么对于含有多表头的数据&#xff0c;我们该如何将它们…

Linux管道学习(无名管道)

目录 1、概述 2、管道的创建 3、管道读写行为 3.1、管道读 3.2、管道写 4、管道用于兄弟进程之间的通讯 在linux中管道有两种&#xff0c;一是无名管道&#xff08;匿名管道&#xff09;&#xff0c;第二种是有名管道&#xff1b;无名管道主要用于有血缘关系的父子进程间…

八、Kotlin 反射

1. 什么是反射 反射是允许在运行时期访问 程序结构 的一类特性&#xff08;程序结构包括&#xff1a;类、接口、方法、属性等&#xff09;。 2. 反射的依赖库 Kotlin 中不仅自己实现了一套 Kotlin 反射的 API&#xff0c;还可以使用 Java 反射的 API。 Kotlin 反射的 API 是…

day33WEB 攻防-通用漏洞文件上传中间件解析漏洞编辑器安全

目录 一&#xff0c;中间件文件解析漏洞-IIS&Apache&Nginx -IIS 6 7 文件名 目录名 -Apache 换行解析 配置不当 1、换行解析-CVE-2017-15715 2、配置不当-.htaccess 配置不当 -Nginx 文件名逻辑 解析漏洞 1、文件名逻辑-CVE-2013-4547 2、解析漏洞-nginx.conf …

ECharts 中 Legend自定义可以使用svg标签

效果图&#xff1a; legend图例加载svg标签 在ECharts中&#xff0c;图例(legend)组件的formatter属性允许你自定义图例文本的格式。但是&#xff0c;formatter属性不支持直接加载SVG标签或Html。它接受一个字符串或者一个函数作为输入&#xff0c;并不能解析或渲染SVG。 如果…

探索 DevOps 中的自动化技术

DevOps 是一种强调开发与 IT 运营之间合作的软件开发范式&#xff0c;主要依靠自动化来优化流程、提高生产力并确保及时、可靠的软件交付。以下是对 DevOps 不可或缺的关键自动化技术的探索&#xff1a; 1.持续集成/持续部署&#xff08;CI/CD&#xff09; 在 DevOps 领域&…

WebSocket服务端数据推送及心跳机制(Spring Boot + VUE):

文章目录 一、WebSocket简介&#xff1a;二、WebSocket通信原理及机制&#xff1a;三、WebSocket特点和优点&#xff1a;四、WebSocket心跳机制&#xff1a;五、在后端Spring Boot 和前端VUE中如何建立通信&#xff1a;【1】在Spring Boot 中 pom.xml中添加 websocket依赖【2】…

Java程序设计(猜拳、猜数字、猜硬币)

前言 Java实现简单的程序设计&#xff0c;包含猜拳、猜数字和猜硬币&#xff0c;实现玩家和电脑之间的互动&#xff0c;电脑每次出的结果实现随机&#xff0c;玩家选择需要玩的游戏&#xff08;猜拳、猜数字、猜硬币&#xff09;&#xff0c;选择需要进行的局数。 界面设计 程…

pcl+vtk(十四)vtkCamera相机简单介绍

一、vtkCamera相机 人眼相当于三维场景下的相机&#xff0c; VTK是用vtkCamera类来表示三维渲染场景中的相机。vtkCamera负责把三维场景投影到二维平面&#xff0c;如屏幕、图像等。 相机位置&#xff1a;即相机所在的位置&#xff0c;用方法vtkCamera::SetPosition()设置。 相…

k8s的安全机制

k8s是分布式集群管理工具&#xff0c;k8s作用是容器编排 1、安全机制核心&#xff1a;API server。API server作为整个集群内部通信的中介&#xff0c;也是外部控制的入口&#xff0c;所有的安全机制都是围绕api sserver来进行设计的。请求api server资源要满足3个条件&#x…

数据结构篇-02:最小栈

对于这道题&#xff0c;除了 getMin 外的功能&#xff0c;传统的 栈 结构中都有&#xff0c;所以重点在于如何实现 getMin 方法。 有两类方法&#xff1a;使用辅助栈/不使用辅助栈 使用辅助栈的解法一 定义一个 栈 来实现常规功能&#xff0c;另外定义一个栈&#xff08;最小…

如何配置点击抖音直播小风车跳转到微信公众号?

随着抖音直播间的普及&#xff0c;越来越多的品牌选择通过直播进行宣传推广。然而&#xff0c;直播间主播的氛围营造是一项极具挑战性的任务。如果观众的热情无法被调动起来&#xff0c;直播间很容易陷入沉寂&#xff0c;难以吸引流量。 为了最大化利用流量&#xff0c;许多品牌…

智能充电桩,机器人 wifi蓝牙 解决方案

新联鑫威低功耗高性价比sdio wifi/蓝牙combo的模块单频2.4g的CYWL6208&#xff0c;双频2.4g/5g CYWL6312可以应用到一些低延时 高性能 低功耗 联网需求的交流直流充电桩&#xff0c;扭力扳手&#xff0c;agv机器人&#xff0c;目前支持主流的stm32F4/GD32F4 瑞萨 psoc的主控&am…

道合顺:一站式电子元器件采购商城

欢迎来到道合顺&#xff0c;您专属的电子元器件采购商城。我们为您提供广泛的元器件选择&#xff0c;包括各类芯片、传感器、电容电阻、连接器等&#xff0c;以满足您项目的需求。 最新价格实时查询 通过道合顺电子网&#xff0c;您可以随时随地查询各类电子元器件的最新价格…

外汇天眼:QoinTech误信假老师话术投资外汇,惨遭黑平台滑点爆仓拒出金

去年11月与12月&#xff0c;外汇天眼先后发布了「钓鱼广告诱加投资群组&#xff0c;限制出金逼迫缴分成费」与「假投顾诱导投资黄金获利&#xff0c;黑平台操作爆仓狠诈700万」这2篇文章&#xff0c;曝光黑平台QoinTech的诈骗手法&#xff0c;呼吁投资人不要上当&#xff0c;没…

你对 TypeScript 中枚举类型的理解?应用场景?

文章目录 一、是什么二、使用数字枚举字符串枚举异构枚举本质 三、应用场景参考文献 一、是什么 枚举是一个被命名的整型常数的集合&#xff0c;用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型 通俗来说&#xff0c;枚举就是一个对象的所有可能…