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

ops/2024/9/19 20:10:18/ 标签: jdk, java

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

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

1.下载JDK(官网)

1.1官网下载dmg安装包

Java Archive | Oracle
Java Archive | Oracle 中国
在这里插入图片描述
这里选择需要安装的jdk版本,我需要的是JDK17版本,这里我选择Java SE 17,点击进入下载页面。

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

我是Apple M1 Pro芯片,选择的是 ARM64 DMG Installer 点击下载后面的dmg文件
注:M系列芯片必须ARM版本否则编译报错

1.3下载成功 找到安装包

在 访达 下载 中找到需要安装的版本
在这里插入图片描述

2.安装JDK

jdk17_22">2.1.安装jdk17

a)双击此文件
在这里插入图片描述
b)点击继续
在这里插入图片描述
c) 这个可以选择为所有用户安装或者为某一用户安装(PS:我的电脑只有一个用户,所以默认给所有用户安装)
在这里插入图片描述
d)这里可以选择安装位置
在这里插入图片描述
e)这里使用指纹或输入密码进行安装
在这里插入图片描述

3.配置环境变量

3.1查看安装路径

打开终端窗口
执行如下命令

进入 JDK 安装目录
cd /Library/Java/JavaVirtualMachines
ls---> jdk-1.8.jdk	jdk-17.jdk
pwd
/Library/Java/JavaVirtualMachines

在这里插入图片描述

3.2配置环境变量文件
open .bash_profile
# JDK Config
JAVA_HOME_8=/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
JAVA_HOME_17=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Homeexport 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 jdk17="export JAVA_HOME=$JAVA_HOME_17 && echo current JDK has switched to openjdk version 17. && java -version"CLASS_PATH="$JAVA_HOME/lib"
PATH="$PATH:$JAVA_HOME/bin"
3.3将配置生效
#配置文件立即生效
source ~/.bash_profile#验证:查看 JAVA_HOME 目录
echo $JAVA_HOME# 查看 JDK 版本信息
java -version
3.4返回查看版本信息,即安装成功。

在这里插入图片描述

jdk_81">4.快速切换jdk版本

xxx@localhost ~ % jdk8
current JDK has switched to oracle jdk version 1.8.
java version "1.8.0_411"
Java(TM) SE Runtime Environment (build 1.8.0_411-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.411-b09, mixed mode)
xxx@localhost ~ % java -version
java version "1.8.0_411"
Java(TM) SE Runtime Environment (build 1.8.0_411-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.411-b09, mixed mode)
xxx@localhost ~ % jdk17
current JDK has switched to openjdk version 17.
java version "17.0.12" 2024-07-16 LTS
Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.12+8-LTS-286, mixed mode, sharing)
xxx@localhost ~ % java -version
java version "17.0.12" 2024-07-16 LTS
Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.12+8-LTS-286, mixed mode, sharing)

http://www.ppmy.cn/ops/113121.html

相关文章

GPT代码记录

#include <iostream>// 基类模板 template<typename T> class Base { public:void func() {std::cout << "Base function" << std::endl;} };// 特化的子类 template<typename T> class Derived : public Base<T> { public:void…

大模型分离架构学习记录

1、大模型相关名词 TOE&#xff08;TCP Offload Engine&#xff09;是指TCP卸载引擎。它是一种网络技术&#xff0c;通过将TCP/IP协议栈的一部分处理任务从主机的CPU卸载到网卡&#xff1b; 也就是RDMANVLink :在单台服务器内 8 块 GPU 卡通过 NVLink 连接。不同服务器之间的 …

MySQL——数据库的高级操作(一)数据备份与还原(1)数据的备份

在操作数据库时&#xff0c;难免会发生一些意外造成数据丢失。例如&#xff0c;突然停电、管理员的操作失误都可能导致数据的丢失。为了确保数据的安全&#xff0c;需要定期对数据库进行备份&#xff0c;这样&#xff0c;当遇到数据库中数据丢失或者出错的情况&#xff0c;就可…

vue3+ant design vue 中弹窗自定义按钮设置及以冒号为基准布局

1、自定义弹窗按钮&#xff0c;去除取消和确定按钮。&#xff08;网上很多方法都是说通过插槽来实现&#xff0c;但是试了下不生效&#xff0c;那既然插槽不生效的话&#xff0c;干脆直接写按钮就好了&#xff09; <a-modalv-model:open"open"title"人员信息…

探索Go语言中的Goroutine并发机制

什么是Goroutine 在Go语言中,Goroutine 是程序中最基本的并发单位。事实上,每个Go程序都会自动创建一个goroutine,那就是主goroutine,程序启动时会立即执行。Goroutine是Go语言中处理并发问题的核心工具,因此理解它的工作原理至关重要。 简而言之,Goroutine是并发执行的…

ubuntu20.04编译mesa

依赖 # drm git clone https://gitlab.freedesktop.org/mesa/drm.git meson builddir/ ninja -C builddir/ install# wayland git clone https://gitlab.freedesktop.org/wayland/wayland.git meson setup builddir -Ddocumentationfalse ninja -C builddir/ install编译 sud…

qt绘制时钟

代码 #include "widget.h" #include "ui_widget.h"#include <QWidget> #include <QPaintEvent> //绘图事件 #include <QDebug> //测试 #include <QPainter> //画家 #include <QPen> //笔 #include <QBrush> //画刷 …

Vue路由:Vue router

目录 路由的基本概念 1. 路由 2. 单页应用SPA 3.前端路由的实现方式 3.1Hash模式 3.2History模式 Vue router 4 1.概述 2.安装使用 3.基础用法 3.1路由匹配规则声明 3.2动态路由匹配 3.3路由命名 3.4路由重定向 3.5路由嵌套 3.6命名视图 3.6声明式导航&编程…

python-奖金/贪心的小明

一&#xff1a;奖金 题目描述 企业发放的奖金根据利润提成。利润低于或等于 100000 元的&#xff0c;奖金可提 10%&#xff1b; 利润高于 100000 元&#xff0c;低于 200000 元&#xff08; 100000<I≤200000&#xff09;时&#xff0c;低于 100000 元的部分按 10% 提成&…

adb install失败: INSTALL_PARSE_FAILED_NO_CERTIFICATES

这个错误表明在尝试安装 APK 文件时出现了问题&#xff0c;原因是 APK 文件中的 AndroidManifest.xml 没有签名证书。在 Android 系统中&#xff0c;所有的应用都必须经过签名才能安装到设备上。以下是解决此问题的方法&#xff1a; 方法一&#xff1a;使用 Android Studio 或命…

一个好的云渲染,在动画渲染需要具备哪些条件

在当今快节奏的影视动画行业中&#xff0c;云渲染技术已经成为设计师和公司不可或缺的工具。它不仅减少了对昂贵硬件的依赖&#xff0c;还显著提高了工作效率&#xff0c;缩短了项目周期。云渲染提供高效、稳定、灵活且成本效益高的渲染服务&#xff0c;关键在于以下几个方面&a…

『功能项目』切换职业面板【48】

我们打开上一篇47技能冷却蒙版的项目&#xff0c; 本章要做的事情是切换职业UI面板的功能 首先双击打开Canvas预制体在左上主角面板信息中新建一个button按钮 重命名&#xff08;父物体是按钮Button&#xff0c;子物体Image即可&#xff09; 创建一个Image 设计一下布局 复制三…

【oj刷题】二分查找篇:二分查找算法的原理和应用场景

前言&#xff1a; 二分查找算法&#xff0c;又称折半查找算法&#xff0c;是一种在有序数组中查找特定元素的高效查找方法。它通过将搜索区间不断缩小一半&#xff0c;从而在对数时间内找到目标元素。二分查找是基于分治策略的一种典型应用&#xff0c;能够高效的处理许多问题&…

Unity实战案例全解析:PVZ 植物卡片状态分析

Siki学院2023的PVZ免费了&#xff0c;学一下也坏 卡片状态 卡片可以有三种状态&#xff1a; 1.阳光足够&#xff0c;&#xff08;且cd好了可以种植&#xff09; 2.阳光不够&#xff0c;&#xff08;cd&#xff1f;好了&#xff1a;没好 &#xff08;三目运算符&#xff09;&…

黑马java学习笔记11(阶段二 第三章3-1~3-2)

以下学习笔记记录于&#xff1a;2024.09.11-2024.09.17 文章目录 阶段二 JavaSE进阶第三章 JDK8新特性3-1 JDK8新特性1&#xff09;Lambda表达式66 认识Lambda表达式67 Lambda表达式的省略规则 2&#xff09;方法引用68 静态方法的引用、实例方法的引用69 特定类型方法的引用70…

门控循环单元(GRU)

困死了。。。 参考视频&#xff1a;56 门控循环单元&#xff08;GRU&#xff09;【动手学深度学习v2】 GRU&#xff1a;门控循环单元&#xff0c;与LSTM类似&#xff0c;解决RNN中不能长期记忆和反向传播中的梯度等问题。但结构比LSTM简单。 关注一个序列&#xff0c;不是每个观…

完整gpt应用(自用)

qrc.py 把gpt_qrc.qrc转化成gpt_qrc.py pyrcc5 -o icons_rc.py icons.qrc <RCC><qresource prefix"img"><file>img/53.png</file><file>img/ai.png</file><file>img/关闭.png</file><file>img/最小化.png&l…

网络安全学习路线,史上最全网络安全学习路线整理

很多小伙伴在网上搜索网络安全时&#xff0c;会出来网络安全工程师这样一个职位&#xff0c;它的范围很广&#xff0c;只要是与网络安全挂钩的技术人员都算网络安全工程师&#xff0c;一些小伙伴就有疑问了&#xff0c;网络安全现在真的很火吗&#xff1f; 那么无涯就带大家看…

PG表空间

目录标题 PG表空间PostgreSQL表空间的最佳实践是什么&#xff1f;如何在PostgreSQL中创建和管理自定义表空间&#xff1f;PostgreSQL表空间对数据库性能的具体影响有哪些&#xff1f;在PostgreSQL中&#xff0c;如何迁移数据到不同的表空间以优化存储布局&#xff1f;PostgreSQ…

IM项目-----语音识别子服务

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、搭建思想二、服务器搭建1.继承speechService类,重写业务代码2.编写语音识别服务器类3.建造者类编写 三.测试 前言 语音转换子服务&#xff0c;用于调用语音…