MacBook 手动安装多版本 JDK(8&17)并配置灵活切换

MacBook 手动安装多版本 JDK(8&17)并配置灵活切换

一、前置准备

  1. 确认Mac芯片类型:点击左上角苹果图标→「关于本机」,查看处理器是「Intel」还是「Apple M系列」。
  2. 下载对应版本JDK:

二、手动安装多版本JDK

Mac系统会自动将不同版本JDK安装到统一目录,彼此独立不冲突,安装步骤如下:

步骤1:安装JDK 8

  1. 双击下载的.dmg文件,打开安装引导界面;
  2. 双击.pkg安装包,按提示点击「继续」「安装」,输入Mac开机密码完成安装;
  3. 安装完成后,JDK 8会被存放至:/Library/Java/JavaVirtualMachines/

步骤2:安装JDK 17

重复上述安装步骤,JDK 17会自动安装到同一目录,与JDK 8共存。

步骤3:验证安装目录

打开终端(Terminal),执行以下命令查看已安装的JDK列表:

ls /Library/Java/JavaVirtualMachines/ 

输出示例(不同版本目录名略有差异,以实际为准):

jdk1.8.0_401.jdk jdk-17.0.9.jdk 

三、配置环境变量(核心)

Mac默认使用zsh终端,我们通过修改~/.zshrc文件配置环境变量,并添加别名实现版本快速切换。

步骤1:编辑配置文件

终端执行命令打开配置文件:

nano ~/.zshrc 

步骤2:添加多版本JDK配置

将以下内容粘贴到文件末尾(注意替换成你实际的JDK目录名):

# ===================== JDK 多版本配置(8&17) =====================# 1. 定义各版本JDK的安装路径(根据实际目录名修改)exportJAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_401.jdk/Contents/Home exportJAVA_17_HOME=/Library/Java/JavaVirtualMachines/jdk-17.0.9.jdk/Contents/Home # 2. 设置默认JDK版本(推荐默认用17,可根据需求改为8)exportJAVA_HOME=$JAVA_17_HOME# 3. 将JDK添加到系统PATH,确保java/javac命令生效exportPATH=$JAVA_HOME/bin:$PATH# 4. 定义别名,一键切换JDK版本(核心!)aliasjdk8='export JAVA_HOME=$JAVA_8_HOME && export PATH=$JAVA_HOME/bin:$PATH && java -version'aliasjdk17='export JAVA_HOME=$JAVA_17_HOME && export PATH=$JAVA_HOME/bin:$PATH && java -version'

步骤3:保存并生效配置

  1. Ctrl+O保存文件,按Enter确认文件名,按Ctrl+X退出nano编辑器;
  2. 执行以下命令让配置立即生效:
source ~/.zshrc 

四、验证配置与版本切换

1. 验证默认版本

终端执行以下命令,查看默认JDK版本(应为17):

java -version javac -version 

JDK 17输出示例:

java version "17.0.9" 2023-10-17 LTS Java(TM) SE Runtime Environment (build 17.0.9+9-LTS-201) Java HotSpot(TM) 64-Bit Server VM (build 17.0.9+9-LTS-201, mixed mode, sharing) 

2. 切换到JDK 8

终端执行别名命令,自动切换并输出JDK 8版本信息:

jdk8 

JDK 8输出示例:

java version "1.8.0_401" Java(TM) SE Runtime Environment (build 1.8.0_401-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.401-b09, mixed mode) 

3. 切回JDK 17

执行别名命令即可快速切回:

jdk17 

五、补充:永久修改默认版本

若想将默认JDK改为8,只需修改~/.zshrc中的这一行:

# 将 JAVA_17_HOME 改为 JAVA_8_HOMEexportJAVA_HOME=$JAVA_8_HOME

修改后执行source ~/.zshrc生效,重新打开终端默认即为JDK 8。

Read more

Java之Volatile 关键字全方位解析:从底层原理到最佳实践

Java之Volatile 关键字全方位解析:从底层原理到最佳实践

文章目录 * 课程导言 * 适用对象 * 学习目标 * 第一部分:从并发三要素看volatile的定位 * 1.1 并发编程的三座大山 * 1.2 volatile的坐标:轻量级的同步利器 * 1.3 一个先导案例:感受volatile的魔力 * 第二部分:volatile与Java内存模型(JMM) * 2.1 为什么要JMM? * 2.2 JMM的核心结构:主内存 vs 工作内存 * 2.3 可见性问题的根源 * 2.4 volatile如何保证可见性? * 2.5 JMM对volatile的规范 * 第三部分:有序性与指令重排序 * 3.1 什么是指令重排序? * 3.2 重排序的潜在风险 * 3.3 volatile如何禁止重排序? * 3.

By Ne0inhk
Java中的char、String、StringBuilder与StringBuffer 深度详解

Java中的char、String、StringBuilder与StringBuffer 深度详解

文章目录 * 第一章:一切的基础——char原始类型 * 1.1 定义与本质 * 1.2 字符编码的演变:从char到byte * 1.3 char的初始化与赋值 * 1.4 char的运算 * 第二章:不可变的字符串——String类 * 2.1 类的定义与不可变性 * 2.2 不可变性的优势 * 2.3 创建String对象的两种方式 * 2.4 操作的真相:总是生成新对象 * 2.5 字符串拼接的陷阱与优化 * 第三章:可变的字符序列——StringBuilder与StringBuffer * 3.1 AbstractStringBuilder:共同的祖先 * 3.2 StringBuilder:非线程安全的“快枪手” * 3.3

By Ne0inhk
【AI应用开发工程师】-分享Java 转 AI成功经验

【AI应用开发工程师】-分享Java 转 AI成功经验

Java 转 AI:别再死磕书本了,老司机带你飞! 文章目录 * Java 转 AI:别再死磕书本了,老司机带你飞! * ⭐AI 大模型应用开发全方位成长路线⭐ * 一、Java 老兵的 AI 转型焦虑:书本,你真的跟不上时代了! * 二、AI 导师,你的专属学习外挂! * 三、抱紧大腿,和 AI 大佬一起成长! * 四、拓展方案一:开源社区,你的 AI 练兵场! * 五、拓展方案二:小步快跑,项目实战是王道! * 六、拓展方案三:知识管理,告别“学了就忘”的魔咒! * 七、总结:转型 AI,一场充满乐趣的冒险!

By Ne0inhk