如何在 Mac 上安装并配置 JDK 环境变量
如何在Mac上安装并配置JDK环境变量
在开发过程中,许多应用和框架都需要使用Java,尤其是使用Java开发的应用程序。如果你是Mac用户,以下是安装并配置JDK环境变量的步骤,确保你能顺利运行Java程序。
步骤 1:下载JDK
-
访问 Adoptium 网站,这是一个免费的OpenJDK发行版提供网站。
-
在页面上选择适合你操作系统的JDK版本。对于大多数Mac用户,选择macOS版本(.pkg安装包)。推荐选择最新的LTS版本(长期支持版本),例如“Temurin 21.0.6+7-LTS”。
-
下载完成后,双击安装包,按照提示进行安装。
步骤 2:安装JDK
-
双击下载的
.pkg文件,这将启动安装向导。 -
跟随提示完成安装,安装路径默认为:
/Library/Java/JavaVirtualMachines/temurin-21.jdk -
安装完成后,JDK将被安装到指定路径。

步骤 3:配置环境变量
为了使终端能够识别java命令并正确运行,你需要设置环境变量。以下是如何在macOS上配置Java环境变量的步骤。
1. 编辑~/.zshrc(对于zsh用户)
如果你使用的是macOS Catalina或更高版本,系统默认使用zsh,你需要编辑~/.zshrc文件:
nano ~/.zshrc
对于老版本的macOS使用bash,你需要编辑~/.bash_profile文件:
nano ~/.bash_profile
2. 设置JAVA_HOME环境变量
在文件末尾添加以下两行内容:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
这将指定Java的安装路径,并将Java的可执行文件添加到PATH中,确保你在任何地方都可以运行Java命令。
3. 保存并退出
按Ctrl + X退出编辑器,然后按Y确认保存更改。
4. 使环境变量生效
执行以下命令,让配置文件生效:
source ~/.zshrc # 如果你使用的是zsh
source ~/.bash_profile # 如果你使用的是bash
步骤 4:验证JDK配置
在终端中运行以下命令,检查Java是否安装成功,并验证环境变量配置是否正确:
java -version
你应该会看到类似以下输出,表明JDK已经正确安装并配置:
openjdk version "21.0.6" 2025-01-21 LTS
OpenJDK Runtime Environment Temurin-21.0.6+7 (build 21.0.6+7-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.6+7 (build 21.0.6+7-LTS, mixed mode, sharing)
步骤 5:设置PowerShell为默认终端(可选)
如果你喜欢使用PowerShell作为终端,你可以使用Homebrew来安装PowerShell并将其设置为默认终端。运行以下命令:
brew install --cask powershell
然后,如果你想让PowerShell成为默认终端,可以按照安装后提供的提示操作:
sudo sh -c 'echo "/opt/homebrew/opt/powershell/bin/pwsh" >> /etc/shells'
chsh -s /opt/homebrew/opt/powershell/bin/pwsh
总结
通过以上步骤,你已经成功地在Mac上安装并配置了JDK环境变量。这使得你能够顺利运行Java应用程序和开发工具。
相关文章:
如何在 Mac 上安装并配置 JDK 环境变量
如何在Mac上安装并配置JDK环境变量 在开发过程中,许多应用和框架都需要使用Java,尤其是使用Java开发的应用程序。如果你是Mac用户,以下是安装并配置JDK环境变量的步骤,确保你能顺利运行Java程序。 步骤 1:下载JDK 访…...
【git-hub项目:YOLOs-CPP】本地实现05:项目移植
ok,经过前3个博客,我们实现了项目的跑通。 但是,通常情况下,我们的项目都是需要在其他电脑上也跑通,才对。 然而,经过测试,目前出现了2 个bug。 项目一键下载【⬇️⬇️⬇️】: 精…...
LeetCode 热题 100 206. 反转链表
LeetCode 热题 100 | 206. 反转链表 大家好,今天我们来解决一道经典的算法题——反转链表。这道题在 LeetCode 上被标记为简单难度,要求我们将一个单链表反转,并返回反转后的链表。下面我将详细讲解解题思路,并附上 Python 代码实…...
2025年02月21日Github流行趋势
项目名称:source-sdk-2013 项目地址url:https://github.com/ValveSoftware/source-sdk-2013项目语言:C历史star数:7343今日star数:929项目维护者:JoeLudwig, jorgenpt, narendraumate, sortie, alanedwarde…...
WebXR教学 03 项目1 旋转彩色方块
一、项目结构 webgl-cube/ ├── index.html ├── main.js ├── package.json └── vite.config.js二、详细实现步骤 初始化项目 npm init -y npm install three vite --save-devindex.html <!DOCTYPE html> <html lang"en"> <head><…...
深入解析JVM垃圾回收机制
1 引言 本节常见面试题 如何判断对象是否死亡(两种方法)。简单的介绍一下强引用、软引用、弱引用、虚引用(虚引用与软引用和弱引用的区别、使用软引用能带来的好处)。如何判断一个常量是废弃常量如何判断一个类是无用的类垃圾收…...
【简单】209.长度最小的子数组
题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回0。 示例 1: 输入&am…...
细说 Java 引用(强、软、弱、虚)和 GC 流程(二)
一、前文回顾 在 细说Java 引用(强、软、弱、虚)和 GC 流程(一) 我们对Java 引用有了总体的认识,本文将继续深入分析 Java 引用在 GC 时的一些细节。 还是从我们在前文中提到的引用流程图里说起,这里不清…...
CSS通过webkit-scrollbar设置滚动条样式
查看::-webkit-scrollbar-*各项关系 以下图为例,可以分别定义滚动条背景、滚动轨道、滚动滑块的样式。 需要先给外部容器设置高度,再设置overflow: auto,最后设置三个webkit属性。 <!DOCTYPE html> <html lang"en">…...
Win10配置VSCode的C/C++编译环境
GNU(编译器工具集合)包含了g、gcc和gdb等编译器。MinGW(Minimalist GNU for Windows)是一个适用于Windows操作系统的最小化的GNU工具集,它包括了GCC编译器(包括g)以及其他一些必要的库和工具。M…...
数据结构与算法再探(七)查找-排序
查找 一、二分查找 二分查找是一种高效的查找算法,适用于在已排序的数组或列表中查找特定元素。它通过将搜索范围逐步减半来快速定位目标元素。理解二分查找的“不变量”和选择左开右闭区间的方式是掌握这个算法的关键。 二分查找关键点 不变量 在二分查找中&a…...
【C语言】指针(5)
前言:上篇文章的末尾我们使用了转移表来解决代码冗余的问题,那我们还有没有什么办法解决代码冗余呢?有的这就是接下来要说的回调函数。 往期文章: 指针1 指针2 指针3 指针4 文章目录 一,回调函数二,qsort实现快速排序1…...
大数据组件(四)快速入门实时数据湖存储系统Apache Paimon(2)
Paimon的下载及安装,并且了解了主键表的引擎以及changelog-producer的含义参考: 大数据组件(四)快速入门实时数据湖存储系统Apache Paimon(1) 利用Paimon表做lookup join,集成mysql cdc等参考: 大数据组件(四)快速入门实时数据…...
PLC通讯
PPI通讯 是西门子公司专为s7-200系列plc开发的通讯协议。内置于s7-200 CPU中。PPI协议物理上基于RS-485口,通过屏蔽双绞线就可以实现PPI通讯。PPI协议是一种主-从协议。主站设备发送要求到从站设备,从站设备响应,从站不能主动发出信息。主站…...
前端js进阶,ES6语法,包详细
进阶ES6 作用域的概念加深对js理解 let、const申明的变量,在花括号中会生成块作用域,而var就不会生成块作用域 作用域链本质上就是底层的变量查找机制 作用域链查找的规则是:优先查找当前作用域先把的变量,再依次逐级找父级作用域直到全局…...
Scrum方法论指导下的Deepseek R1医疗AI部署开发
一、引言 1.1 研究背景与意义 在当今数智化时代,软件开发方法论对于项目的成功实施起着举足轻重的作用。Scrum 作为一种广泛应用的敏捷开发方法论,以其迭代式开发、快速反馈和高效协作的特点,在软件开发领域占据了重要地位。自 20 世纪 90 …...
LINUX安装使用Redis
参考 Install Redis on Linux | Docs 安装命令 sudo apt-get install -y lsb-release curl gpgcurl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpgsudo chmod 644 /usr/share/keyrings/redis-archive-keyrin…...
基于java新闻管理系统,推荐一款开源cms内容管理系统ruoyi-fast-cms
一、项目概述 1.1 项目背景 在信息高速流通的当下,新闻媒体行业每天都要处理和传播海量信息。传统的新闻管理模式依赖人工操作,在新闻采集、编辑、发布以及后续管理等环节中,不仅效率低下,而且容易出现人为失误。同时࿰…...
054 redisson
文章目录 使用Redisson演示可重入锁读写锁信号量闭锁获取三级分类redisson分布式锁 package com.xd.cubemall.product.config;import org.redisson.Redisson; import org.redisson.api.RedissonClient; import org.redisson.config.Config; import org.springframework.context…...
【数据结构】(12) 反射、枚举、lambda 表达式
一、反射 1、反射机制定义及作用 反射是允许程序在运行时检查和操作类、方法、属性等的机制,能够动态地获取信息、调用方法等。换句话说,在编写程序时,不需要知道要操作的类的具体信息,而是在程序运行时获取和使用。 2、反射机制…...
MIL-53(Al)修饰四氧化三铁纳米颗粒,MIL-53(Al)@Fe₃O₄ NPs,反应机制
MIL-53(Al)修饰四氧化三铁纳米颗粒,MIL-53(Al)Fe₃O₄ NPs,反应机制MIL-53(Al)Fe₃O₄ NPs(MIL-53(Al)修饰四氧化三铁纳米颗粒)是一类典型的磁性核–金属有机骨架壳层复合材料,其反应机制可从“表面活化—配位诱导成核…...
中兴C69E OLT升级避坑指南:从FTP配置到板卡激活,手把手搞定V1.2.2固件
中兴C69E OLT升级实战手册:V1.2.2固件全流程操作与关键细节解析 深夜的机房警报声突然响起,监控大屏上闪烁着某台C69E OLT的异常状态。作为值班工程师,你很清楚这意味着什么——又到了与固件版本搏斗的时刻。中兴OLT设备升级从来不是简单的&…...
替换镜像接口提升AI调用稳定性
要替换不稳定的第三方镜像接口以提升AI机器人调用的稳定性,核心在于选择并集成一个可靠、高性能且具备良好兼容性的AI服务后端。这通常涉及以下几个关键步骤:评估与选择稳定API源、配置本地或云端模型服务、以及优化调用逻辑与错误处理机制。 1. 核心方…...
100+打印机型号的Linux驱动解决方案:foo2zjs深度技术解析
100打印机型号的Linux驱动解决方案:foo2zjs深度技术解析 【免费下载链接】foo2zjs A linux printer driver for QPDL protocol - copy of http://foo2zjs.rkkda.com/ 项目地址: https://gitcode.com/gh_mirrors/fo/foo2zjs 在Linux系统中配置打印机驱动一直是…...
5分钟快速上手:Windows风扇控制软件FanControl完全指南
5分钟快速上手:Windows风扇控制软件FanControl完全指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/f…...
5分钟快速修复损坏MP4视频:untrunc终极指南
5分钟快速修复损坏MP4视频:untrunc终极指南 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc 你是否因为相机突然断电、存储卡故障或传输中断而丢失了珍贵…...
设计师必备!Sketch MeaXure:告别手动标注,5分钟搞定设计规范的终极方案
设计师必备!Sketch MeaXure:告别手动标注,5分钟搞定设计规范的终极方案 【免费下载链接】sketch-meaxure 项目地址: https://gitcode.com/gh_mirrors/sk/sketch-meaxure 还在为繁琐的设计标注而头疼吗?Sketch MeaXure插件…...
车载场景问答准确率从63%跃升至91.7%:Dify动态上下文管理与多模态指令微调实战手记(含CAN总线语义注入代码)
第一章:车载场景问答准确率从63%跃升至91.7%:Dify动态上下文管理与多模态指令微调实战手记(含CAN总线语义注入代码)在智能座舱真实部署环境中,原始基于静态Prompt的问答系统在车载多轮对话中表现乏力——语音打断、CAN…...
如何突破Windows应用程序的尺寸限制?WindowResizer的底层技术解析与应用实践
如何突破Windows应用程序的尺寸限制?WindowResizer的底层技术解析与应用实践 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 在Windows生态系统中,应用程序…...
告别WinForm默认弹窗!手把手教你用C#打造高颜值自定义MessageBox(附完整源码)
从零构建现代化C#消息弹窗:告别WinForm默认样式的终极指南 每次看到WinForm那个灰头土脸的默认MessageBox弹窗,总有种穿越回Windows 98的错觉。在2023年的今天,用户对UI的审美要求早已今非昔比——根据Adobe的调研数据,75%的用户会…...
