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

如何在 Mac 上安装并配置 JDK 环境变量

如何在Mac上安装并配置JDK环境变量

在开发过程中,许多应用和框架都需要使用Java,尤其是使用Java开发的应用程序。如果你是Mac用户,以下是安装并配置JDK环境变量的步骤,确保你能顺利运行Java程序。

步骤 1:下载JDK

  1. 访问 Adoptium 网站,这是一个免费的OpenJDK发行版提供网站。

  2. 在页面上选择适合你操作系统的JDK版本。对于大多数Mac用户,选择macOS版本(.pkg安装包)。推荐选择最新的LTS版本(长期支持版本),例如“Temurin 21.0.6+7-LTS”。

  3. 下载完成后,双击安装包,按照提示进行安装。

步骤 2:安装JDK

  1. 双击下载的.pkg文件,这将启动安装向导。

  2. 跟随提示完成安装,安装路径默认为:

    /Library/Java/JavaVirtualMachines/temurin-21.jdk
    
  3. 安装完成后,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 引言 本节常见面试题 如何判断对象是否死亡&#xff08;两种方法&#xff09;。简单的介绍一下强引用、软引用、弱引用、虚引用&#xff08;虚引用与软引用和弱引用的区别、使用软引用能带来的好处&#xff09;。如何判断一个常量是废弃常量如何判断一个类是无用的类垃圾收…...

【简单】209.长度最小的子数组

题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, …, numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回0。 示例 1&#xff1a; 输入&am…...

细说 Java 引用(强、软、弱、虚)和 GC 流程(二)

一、前文回顾 在 细说Java 引用&#xff08;强、软、弱、虚&#xff09;和 GC 流程&#xff08;一&#xff09; 我们对Java 引用有了总体的认识&#xff0c;本文将继续深入分析 Java 引用在 GC 时的一些细节。 还是从我们在前文中提到的引用流程图里说起&#xff0c;这里不清…...

CSS通过webkit-scrollbar设置滚动条样式

查看::-webkit-scrollbar-*各项关系 以下图为例&#xff0c;可以分别定义滚动条背景、滚动轨道、滚动滑块的样式。 需要先给外部容器设置高度&#xff0c;再设置overflow: auto&#xff0c;最后设置三个webkit属性。 <!DOCTYPE html> <html lang"en">…...

Win10配置VSCode的C/C++编译环境

GNU&#xff08;编译器工具集合&#xff09;包含了g、gcc和gdb等编译器。MinGW&#xff08;Minimalist GNU for Windows&#xff09;是一个适用于Windows操作系统的最小化的GNU工具集&#xff0c;它包括了GCC编译器&#xff08;包括g&#xff09;以及其他一些必要的库和工具。M…...

数据结构与算法再探(七)查找-排序

查找 一、二分查找 二分查找是一种高效的查找算法&#xff0c;适用于在已排序的数组或列表中查找特定元素。它通过将搜索范围逐步减半来快速定位目标元素。理解二分查找的“不变量”和选择左开右闭区间的方式是掌握这个算法的关键。 二分查找关键点 不变量 在二分查找中&a…...

【C语言】指针(5)

前言&#xff1a;上篇文章的末尾我们使用了转移表来解决代码冗余的问题&#xff0c;那我们还有没有什么办法解决代码冗余呢&#xff1f;有的这就是接下来要说的回调函数。 往期文章: 指针1 指针2 指针3 指针4 文章目录 一&#xff0c;回调函数二&#xff0c;qsort实现快速排序1…...

大数据组件(四)快速入门实时数据湖存储系统Apache Paimon(2)

Paimon的下载及安装&#xff0c;并且了解了主键表的引擎以及changelog-producer的含义参考&#xff1a; 大数据组件(四)快速入门实时数据湖存储系统Apache Paimon(1) 利用Paimon表做lookup join&#xff0c;集成mysql cdc等参考&#xff1a; 大数据组件(四)快速入门实时数据…...

PLC通讯

PPI通讯 是西门子公司专为s7-200系列plc开发的通讯协议。内置于s7-200 CPU中。PPI协议物理上基于RS-485口&#xff0c;通过屏蔽双绞线就可以实现PPI通讯。PPI协议是一种主-从协议。主站设备发送要求到从站设备&#xff0c;从站设备响应&#xff0c;从站不能主动发出信息。主站…...

前端js进阶,ES6语法,包详细

进阶ES6 作用域的概念加深对js理解 let、const申明的变量&#xff0c;在花括号中会生成块作用域&#xff0c;而var就不会生成块作用域 作用域链本质上就是底层的变量查找机制 作用域链查找的规则是:优先查找当前作用域先把的变量&#xff0c;再依次逐级找父级作用域直到全局…...

Scrum方法论指导下的Deepseek R1医疗AI部署开发

一、引言 1.1 研究背景与意义 在当今数智化时代&#xff0c;软件开发方法论对于项目的成功实施起着举足轻重的作用。Scrum 作为一种广泛应用的敏捷开发方法论&#xff0c;以其迭代式开发、快速反馈和高效协作的特点&#xff0c;在软件开发领域占据了重要地位。自 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 项目背景 在信息高速流通的当下&#xff0c;新闻媒体行业每天都要处理和传播海量信息。传统的新闻管理模式依赖人工操作&#xff0c;在新闻采集、编辑、发布以及后续管理等环节中&#xff0c;不仅效率低下&#xff0c;而且容易出现人为失误。同时&#xff0…...

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、反射机制定义及作用 反射是允许程序在运行时检查和操作类、方法、属性等的机制&#xff0c;能够动态地获取信息、调用方法等。换句话说&#xff0c;在编写程序时&#xff0c;不需要知道要操作的类的具体信息&#xff0c;而是在程序运行时获取和使用。 2、反射机制…...

MIL-53(Al)修饰四氧化三铁纳米颗粒,MIL-53(Al)@Fe₃O₄ NPs,反应机制

MIL-53(Al)修饰四氧化三铁纳米颗粒&#xff0c;MIL-53(Al)Fe₃O₄ NPs&#xff0c;反应机制MIL-53(Al)Fe₃O₄ NPs&#xff08;MIL-53(Al)修饰四氧化三铁纳米颗粒&#xff09;是一类典型的磁性核–金属有机骨架壳层复合材料&#xff0c;其反应机制可从“表面活化—配位诱导成核…...

中兴C69E OLT升级避坑指南:从FTP配置到板卡激活,手把手搞定V1.2.2固件

中兴C69E OLT升级实战手册&#xff1a;V1.2.2固件全流程操作与关键细节解析 深夜的机房警报声突然响起&#xff0c;监控大屏上闪烁着某台C69E OLT的异常状态。作为值班工程师&#xff0c;你很清楚这意味着什么——又到了与固件版本搏斗的时刻。中兴OLT设备升级从来不是简单的&…...

替换镜像接口提升AI调用稳定性

要替换不稳定的第三方镜像接口以提升AI机器人调用的稳定性&#xff0c;核心在于选择并集成一个可靠、高性能且具备良好兼容性的AI服务后端。这通常涉及以下几个关键步骤&#xff1a;评估与选择稳定API源、配置本地或云端模型服务、以及优化调用逻辑与错误处理机制。 1. 核心方…...

100+打印机型号的Linux驱动解决方案:foo2zjs深度技术解析

100打印机型号的Linux驱动解决方案&#xff1a;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分钟快速上手&#xff1a;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视频&#xff1a;untrunc终极指南 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc 你是否因为相机突然断电、存储卡故障或传输中断而丢失了珍贵…...

设计师必备!Sketch MeaXure:告别手动标注,5分钟搞定设计规范的终极方案

设计师必备&#xff01;Sketch MeaXure&#xff1a;告别手动标注&#xff0c;5分钟搞定设计规范的终极方案 【免费下载链接】sketch-meaxure 项目地址: https://gitcode.com/gh_mirrors/sk/sketch-meaxure 还在为繁琐的设计标注而头疼吗&#xff1f;Sketch MeaXure插件…...

车载场景问答准确率从63%跃升至91.7%:Dify动态上下文管理与多模态指令微调实战手记(含CAN总线语义注入代码)

第一章&#xff1a;车载场景问答准确率从63%跃升至91.7%&#xff1a;Dify动态上下文管理与多模态指令微调实战手记&#xff08;含CAN总线语义注入代码&#xff09;在智能座舱真实部署环境中&#xff0c;原始基于静态Prompt的问答系统在车载多轮对话中表现乏力——语音打断、CAN…...

如何突破Windows应用程序的尺寸限制?WindowResizer的底层技术解析与应用实践

如何突破Windows应用程序的尺寸限制&#xff1f;WindowResizer的底层技术解析与应用实践 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 在Windows生态系统中&#xff0c;应用程序…...

告别WinForm默认弹窗!手把手教你用C#打造高颜值自定义MessageBox(附完整源码)

从零构建现代化C#消息弹窗&#xff1a;告别WinForm默认样式的终极指南 每次看到WinForm那个灰头土脸的默认MessageBox弹窗&#xff0c;总有种穿越回Windows 98的错觉。在2023年的今天&#xff0c;用户对UI的审美要求早已今非昔比——根据Adobe的调研数据&#xff0c;75%的用户会…...