当前位置: 首页 > article >正文

Mac同时安装jdk8和jdk17,默认选择jdk8

在Mac上同时安装JDK 8和JDK 17,并设置默认版本为JDK 8,可以按照以下步骤操作:

一、下载并安装JDK 8和JDK 17

  1. 下载JDK 8

    • 访问Oracle JDK下载页面。
    • 在“Java SE Archive Downloads”部分,找到JDK 8的下载链接。
    • 选择适合您Mac芯片类型的版本(如Arm 64或x64),下载.dmg安装包。
    • 双击.dmg文件,按照安装向导的提示完成JDK 8的安装。
  2. 下载并安装JDK 17

    • 仍然在Oracle JDK下载页面,找到JDK 17的下载链接。
    • 选择适合您Mac芯片类型的版本,下载.dmg安装包。
    • 双击.dmg文件,按照安装向导的提示完成JDK 17的安装。

二、验证安装

  1. 打开终端(可以通过Spotlight搜索“终端”来找到)。

  2. 输入以下命令,查看已安装的JDK版本:

    /usr/libexec/java_home -V

    您应该能够看到类似以下的输出,显示JDK 8和JDK 17的安装路径:

    Matching Java Virtual Machines (2):17.0.x (x86_64) "Oracle Corporation" - "JDK 17.0.x" /Library/Java/JavaVirtualMachines/jdk-17.0.x.jdk/Contents/Home1.8.0_x (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_x.jdk/Contents/Home

三、配置环境变量

  1. 编辑配置文件

    • 根据您的Shell类型(通常是bashzsh),编辑相应的配置文件。

      • 对于bash,编辑~/.bash_profile文件。
      • 对于zsh,编辑~/.zshrc文件。
    • 打开终端,输入以下命令之一来编辑配置文件:

      vim ~/.bash_profile   # 如果使用bash
      vim ~/.zshrc          # 如果使用zsh
    • 或者,您也可以使用其他文本编辑器,如nanoopen -e命令。

  2. 添加环境变量

    • 在配置文件的末尾添加以下内容,以设置JDK 8为默认版本:

      export JAVA_8_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_x.jdk/Contents/Home"
      export JAVA_17_HOME="/Library/Java/JavaVirtualMachines/jdk-17.0.x.jdk/Contents/Home"
      export JAVA_HOME=$JAVA_8_HOME
      export PATH=$JAVA_HOME/bin:$PATH# 为方便切换JDK版本,添加别名
      alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
      alias jdk17="export JAVA_HOME=$JAVA_17_HOME"
    • 请确保将jdk1.8.0_x.jdkjdk-17.0.x.jdk替换为您实际安装的JDK版本的文件名。

  3. 保存并关闭文件

    • vim编辑器中,按Esc键退出编辑模式,然后输入:wq保存并退出。
  4. 使配置生效

    • 在终端中输入以下命令,使配置的环境变量立即生效:

      source ~/.bash_profile   # 如果使用bash
      source ~/.zshrc          # 如果使用zsh

四、验证默认JDK版本

  1. 在终端中输入以下命令,查看当前默认的JDK版本:

    java -version

    您应该能够看到JDK 8的版本信息,表明JDK 8已设置为默认版本。

五、切换JDK版本

  1. 您可以随时使用之前配置的别名来切换JDK版本。例如,要切换到JDK 17,可以输入以下命令:

    jdk17
  2. 然后再次输入java -version,验证JDK版本是否已切换为JDK 17。

通过以上步骤,您可以在Mac上同时安装JDK 8和JDK 17,并设置默认版本为JDK 8。需要时,您可以轻松切换JDK版本以满足不同的开发需求。

相关文章:

Mac同时安装jdk8和jdk17,默认选择jdk8

在Mac上同时安装JDK 8和JDK 17,并设置默认版本为JDK 8,可以按照以下步骤操作: 一、下载并安装JDK 8和JDK 17 下载JDK 8 访问Oracle JDK下载页面。在“Java SE Archive Downloads”部分,找到JDK 8的下载链接。选择适合您Mac芯片类…...

【Zinx】Day5-Part3:Zinx 的连接管理

目录 Day5-Part3:Zinx 的连接管理创建连接管理模块将连接管理模块集成到 Zinx 当中将 ConnManager 集成到 Server 当中在 Connection 的工厂函数中将连接添加到 ConnManagerServer 中连接数量的判断连接的删除 补充:连接的带缓冲发包方式补充&#xff1a…...

网络安全之RSA算法

1978年就出现了这种算法,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字(RonRivest,AdiShamir和LeonardAdleman)命名。但RSA的安全性一直未能得到理论上的证…...

Unity Dots

文章目录 什么是DotsDOTS的优势ECS(实体组件系统)Job System作业系统Burst编译器最后 什么是Dots DOTS(Data-Oriented Technology Stack)是Unity推出的一种用于开发高性能游戏和应用的数据导向技术栈,包含三大核心组件…...

设计模式-结构型模式-桥接模式

概述 桥接模式 :Bridge Pattern: 是一种结构型设计模式。 旨在将抽象部分与实现部分分离,使它们可以独立变化。 它通过组合代替继承,解决类爆炸问题,并提高系统的灵活性和可扩展性。 组成部分 【抽象部分】&#xff08…...

Ultravox:融合whisper+llama实现audio2text交互

Ultravox是由Fixie AI开发的一种创新型多模态大语言模型,专为实时语音交互设计。与传统的语音交互系统不同,Ultravox无需单独的语音识别(ASR)阶段,可以直接理解文本和人类语音,实现更快速、更自然的交互体验。Ultravox v0.5在语音理解基准测试中超越了OpenAI的GPT-4o Realt…...

【MySQL_06】表的相关操作

文章目录 一、表的基本操作1.1 创建表1.2 修改表结构1.2.1 添加列1.2.2 删除列1.2.3 修改列1.2.4 重命名列1.2.5 添加约束 1.3 删除表1.4 查询表结构1.5 重命名表1.6 复制表1.6.1 仅复制结构1.6.2 复制结构及数据 1.7 清空表数据 二、数据完整性约束2.1 主键约束2.2 唯一约束2.…...

clickhouse集群部署保姆级教程

ClickHouse安装 版本要求 23.8及之后的版本 硬件要求 三台机器 建议配置 磁盘 ssd 500G内存 32gcpu 16c 最低配置 磁盘 机械硬盘 50G内存 4gcpu 4c 容量规划 一亿条数据大约使用1TB磁盘容量 参考官方容量推荐 安装包准备 zookeeper安装 zookeeper需要java启动&…...

驾培市场与低空经济无人机融合技术详解

随着科技的飞速发展和社会的不断进步,驾培市场正面临着前所未有的变革。传统汽车驾驶培训已不再是唯一的选择,无人机驾驶等新兴领域正逐渐成为驾培市场的重要组成部分。本报告旨在探讨驾培市场与低空经济的融合发展,特别是应用型人才培养与驾…...

pandas-基础(数据结构及文件访问)

1 Pandas的数据结构 1.1 Series 特点:一维的数据型对象,包含一个值序列和数据标签(即索引) 创建Series: pandas.Series(dataNone, indexNone, dtypeNone, nameNone, copyFalse, fastpathFalse) 参数说明: data&a…...

简单记录一下Oracle数据库与mysql数据库注入的不同。

Oracle数据库的注入比mysql较复制。 一确定注入点:与mysql一样。 and 11 -- #文章有出现. and 12 -- #文章不见了。 二。确定列数。 ’order by 1,2 -- #没问题 order by 1,2,3 -- #保错,所以有两列。 三,所有uni…...

前端小食堂 | Day11 - Vue.js の烹饪秘籍

&#x1f3a8; 今日主菜&#xff1a;Vue 常用技巧全家桶 1. 响应式烹饪秘籍 <script setup> // &#x1f373; 精准控制响应式 const counter ref(0); // 基本类型用ref const user reactive({ name: 小明, age: 18 }); // 对象用reactive // &#x1f525; 自…...

如何将本地已有的仓库上传到gitee (使用UGit)

1、登录Gitee。 2、点击个人头像旁边的加号&#xff0c;选择新建仓库&#xff1a; 3、填写仓库相关信息 4、复制Gitee仓库的地址 5、绑定我们的本地仓库与远程仓库 6、将本地仓库发布&#xff08;推送&#xff09;到远程仓库&#xff1a; 注意到此处报错&#xff…...

多方安全计算(MPC)电子拍卖系统

目录 一、前言二、多方安全计算(MPC)与电子拍卖系统概述2.1 多方安全计算(MPC)的基本概念2.2 电子拍卖系统背景与需求三、MPC电子拍卖系统设计原理3.1 系统总体架构3.2 电子拍卖中的安全协议3.3 数学与算法证明四、数据加解密模块设计五、GPU加速与系统性能优化六、GUI设计与系…...

Day04 模拟原生开发app过程 Androidstudio+逍遥模拟器

1、用Androidstudio打开已经写好了的music项目 2、逍遥模拟器打开apk后缀文件 3、在源文件搜索关键字 以后的测试中做资产收集...

C# Channel

核心概念创建Channel无界通道有界通道FullMode选项 生产者-消费者模式生产者写入数据消费者读取数据 完整示例高级配置优化选项&#xff1a;取消操作&#xff1a;通过 CancellationToken 取消读写。 错误处理适用场景Channel的类型创建Channel写入和读取消息使用场景示例代码注…...

17网商品列表的HTML结构是怎样的?

根据搜索结果&#xff0c;目前没有直接提供17网&#xff08;17zwd&#xff09;商品列表的HTML结构的详细信息。不过&#xff0c;我们可以根据一般的电商网站结构进行推测&#xff0c;并结合已有的爬虫代码示例来分析可能的HTML结构。 17网商品列表的HTML结构推测 一般来说&am…...

若依ry-vue分离板(完整版)前后端部署

目录 1.目标 2.准备工作 3.源码下载 4.整理前后端目录 5.先部署后端 &#xff08;1&#xff09;导入数据库 &#xff08;2&#xff09;改代码数据库配置 &#xff08;3&#xff09;运行redis &#xff08;4&#xff09;运行执行文件 &#xff08;5&#xff09;后端启…...

【YOLOv8】YOLOv8改进系列(5)----替换主干网络之EfficientFormerV2

主页&#xff1a;HABUO&#x1f341;主页&#xff1a;HABUO &#x1f341;YOLOv8入门改进专栏&#x1f341; &#x1f341;如果再也不能见到你&#xff0c;祝你早安&#xff0c;午安&#xff0c;晚安&#x1f341; 【YOLOv8改进系列】&#xff1a; 【YOLOv8】YOLOv8结构解读…...

深入理解 HTML 文本格式化

在网页开发中&#xff0c;HTML 文本格式化是一项基础且关键的技能。通过合理运用 HTML 格式化标签&#xff0c;我们能够让网页上的文本以丰富多样的形式呈现&#xff0c;从而提升用户体验。本文将详细介绍 HTML 文本格式化的相关知识。​ 一、HTML 文本格式化基础​ 加粗文本…...

时序和延时

1、延迟模型的类型 verilog有三种类型的延迟模型&#xff1a;分布延迟 、 集总延迟 、 路径延迟&#xff08;pin to pin&#xff09; 1.1、 分布延迟 分布延迟是在每个独立元件的基础上进行定义的。 module M(output wire out ,input wire a …...

北大一二三四版全套DeepSeek教学资料

DeepSeek学习资料合集&#xff1a;https://pan.quark.cn/s/bb6ebf0e9b4d DeepSeek实操变现指南&#xff1a;https://pan.quark.cn/s/76328991eaa2 你是否渴望深入探索人工智能的前沿领域&#xff1f;是否在寻找一份能引领你从理论到实践&#xff0c;全面掌握AI核心技术的学习…...

垃圾收集算法与收集器

在 JVM 中&#xff0c;垃圾收集&#xff08;Garbage Collection, GC&#xff09;算法的核心目标是自动回收无用对象的内存&#xff0c;同时尽量减少对应用性能的影响。以下是 JVM 中主要垃圾收集算法的原理、流程及实际应用场景的详细介绍&#xff1a; 一、标记-清除算法&#…...

【大模型】WPS 接入 DeepSeek-R1详解,打造全能AI办公助手

目录 一、前言 二、WPS接入AI工具优势​​​​​​​ 三、WPS接入AI工具两种方式 3.1 手动配置的方式 3.2 Office AI助手 四、WPS手动配置方式接入AI大模型 4.1 安装VBA插件 4.1.1 下载VBA插件并安装 4.2 配置WPS 4.3 WPS集成VB 4.4 AI助手效果测试 4.5 配置模板文…...

STM32步进电机驱动全解析(上) | 零基础入门STM32第五十七步

主题内容教学目的/扩展视频步进电机电路原理&#xff0c;跳线设置&#xff0c;驱动程序&#xff0c;调用控制。熟悉驱动程序&#xff0c;能调用控制。 师从洋桃电子&#xff0c;杜洋老师 &#x1f4d1;文章目录 一、步进电机核心原理图解二、核心特性与优势三、关键驱动方式对比…...

Spring Boot 多数据源解决方案:dynamic-datasource-spring-boot-starter 的奥秘(上)

在 Spring Boot 生态中&#xff0c;dynamic-datasource-spring-boot-starter 是一个非常实用的组件&#xff0c;它为我们在多数据源场景下提供了便捷的解决方案。在上一篇文章《一分钟上手&#xff1a;如何创建你的第一个 Spring Boot Starter》中&#xff0c;我们学习了如何创…...

[NewStarCTF 2023 公开赛道]ez_sql1 【sqlmap使用/大小写绕过】

题目&#xff1a; 发现id处可以sql注入&#xff1a; 虽然输入id1;show databases;#没什么回显&#xff0c;但是知道这里是字符型注入了 这次利用sqlmap注入 --dbs&#xff1a;列出所有数据库名字 python .\sqlmap.py -u http://a40b2f0a-823f-4c99-b43c-08b94ed0abb2.node5.…...

【商城实战(18)】后台管理系统基础搭建:从0到1构建电商中枢

【商城实战】专栏重磅来袭&#xff01;这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建&#xff0c;运用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用户、商品、订单等核心模块开发&#xff0c;再到性能优化、安全加固、多端适配&#xf…...

新能源汽车充电综合解决方案:安科瑞电气助力绿色出行

安科瑞 华楠 18706163979 随着新能源汽车的迅猛发展&#xff0c;充电基础设施的建设成为了推动行业进步的关键。然而&#xff0c;充电技术滞后、运营效率低下、车桩比失衡等问题&#xff0c;依然困扰着广大车主和运营商。今天&#xff0c;我们要为大家介绍一款新能源汽车充电…...

蓝桥杯java-B组真题—动态规划

目录 一.什么是动态规划? 二.题目 第一种情况:集合本身之和为奇数 第二种情况:集合本身之和为偶数 下面是代码实现: 一.什么是动态规划? 这里就简单的解释一下&#xff0c;动态规划就是记录之前的计算结果&#xff0c;避免重复的计算之前已经计算过的结果&#xff0c;用…...