Mac 安装 JDK21 流程

一、下载JDK21

访问Oracle官方网站或选择OpenJDK作为替代品。Oracle JDK11版本开始是商业的,可能需要支付费用。OpenJDK是一个免费开源选项。

Oracle JDK官方网站:Oracle JDK Downloads
OpenJDK官方网站:OpenJDK Downloads

这里以JDK21为例:
在这里插入图片描述
我选择的是JDK21进行安装:ARM64X64代表CPU架构类型,执行uname -m命令可以查看电脑是什么类型的cpu架构,选择对应的包,不匹配会提示安装失败或者不可用;
在这里插入图片描述
bin.tar.gzdmg包的区别: tar.gz直接解压就可以用,解压的路径就是安装的路径; dmgmac安装文件规范,默认会安装到/Library/Java/JavaVirtualMachines/路径下;

二、安装JDK

进入下载目录,解压文件并将文件移动到指定的目录中。因为我们是手动安装,所以需要自己创建~/Library/Java/JavaVirtualMachines目录,我这里保持和自动安装的目录相同。

cd ~/Downloads
# 记得将命令中的`openjdk-21.0.2_macos-x64_bin.tar.gz`、`jdk-21.0.2.jdk` 修改为你实际的名称:
tar -zxf openjdk-21.0.2_macos-x64_bin.tar.gz
mv jdk-21.0.2.jdk ~/Library/Java/JavaVirtualMachines

三、设置环境变量

使用终端编辑你的shell配置文件(如~/.bash_profile~/.bashrc~/.zshrc等),我们选择~/.zshrc文件,在文件末尾加入以下内容:第一行设置了JAVA_HOME环境变量,指向JDK 21的安装目录。第二行将JDK 21bin目录添加到了PATH环境变量中,以便在终端中直接使用Java命令。

# 记得将命令中的`jdk-21.0.2.jdk` 修改为你实际的名称:
export JAVA_HOME="~/Library/Java/JavaVirtualMachines/jdk-21.0.2.jdk/Contents/Home" 
export PATH=$JAVA_HOME/bin:$PATH

2、应用配置:source ~/.zshrc

四、验证安装

打开命令行界面,运行以下命令:

java -version
javac -version

如果显示了javajavac的版本信息,而不是错误消息,则表明JDK已成功安装。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/6122.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型部署之前端页面编写框架,我选streamlit

简介 Streamlit是一个开源的Python库,它让数据科学家和开发者可以快速创建和分享美观的,交互式的Web应用。无需拥有前端开发经验,任何人都可以使用Streamlit将数据脚本转换为分享给非技术用户的交互式Web应用。它简化了Web应用的开发流程,让开发者能够专注于数据和业务逻辑…

FP16、BF16、INT8、INT4精度模型加载所需显存以及硬件适配的分析

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

EDA(一)Verilog

EDA(一)Verilog Verilog是一种用于电子系统设计自动化(EDA)的硬件描述语言(HDL),主要用于设计和模拟电子系统,特别是在集成电路(IC)和印刷电路板(…

Apache RocketMQ知识点表格总结及示例

RocketMQ的使用大概还是四五年前的时候,最近几年参与的项目基本上都是使用的RabbitMQ,就我个人来说,我也更喜欢使用RabbitMQ,不过消息队列的功能都差不多,大同小异。原理也类似。我喜欢使用RabbitMQ,是因为RabbitMQ安装…

Linux / Ubuntu 备份数据

Linux / Ubuntu 备份数据 需要备份的文件tar 工具备份/打包过程恢复/解包过程 流程自动化start_backup.shserver_backup.sh 同步发布在个人笔记Linux / Ubuntu 备份数据 需要备份的文件 对于我们的 linux 服务器(当然也适用于桌面端),时常进…

CogVLM/CogAgent环境搭建推理测试

引子 对于多模态大语言模型,一直没有怎么接触。刚巧一朋友有问到这方面的问题,也就顺手调研下。智谱AI的东西一直以来,还是很不错的。ChatGLM的忠实fans,看到白嫖网站github上有他们开源的多模态CogVLM/CogAgent,那就…

C语言:文件操作(中)

片头 嗨!小伙伴们,大家好!在上一篇中,我们学习了C语言:文件操作(上),在这一篇中,我们将继续学习文件操作,准备好了吗?Ready Go ! ! ! 文件的顺序…

Linux下top命令指标说明

目录 Linux下top命令指标说明1. 概览2. CPU利用率3. 内存利用率4. 进程信息 Linux下top命令指标说明 在Linux系统中,top 命令是一个用于实时监视系统运行状态的工具。通过 top 命令,我们可以了解系统的负载情况、CPU利用率、内存使用情况以及各个进程的…

ubuntu修改/etc/resolve.conf总是被重置

ubuntu修改/etc/resolve.conf总是被重置 其实处理来很简单,根据英文提示删除/etc/resolve.conf,那是一个软链接,重新创建/etc/resolve.conf rm /etc/resolve.conf vi /etc/resolve.conf 添加nameserver 223.5.5.5

短视频素材去哪里搬运?短视频素材有哪些类型?

在这个数字化和视觉传达至关重要的时代,选择合适的视频素材对于提升视频内容的吸引力和观众参与度至关重要。无论您是一名广告制片人、社交媒体经理还是独立视频制作者,以下这些精选的视频素材网站将为您提供从高清视频到特效资源的全面支持,…

【Qt】Qt输出多页pdf

Qt输出多页 pdf 2. 代码 QFile pdfFile("./tmp.pdf");pdfFile.open(QIODevice::WriteOnly);QPdfWriter *pPdfWriter new QPdfWriter(&pdfFile);pPdfWriter->setResolution(300);pPdfWriter->setPageSize(QPageSize(QPageSize::A4));pPdfWriter->setPag…

7.k8s中的名称空间namespace

目录 一、Namespace(命名空间) 二、查看系统的名称空间 1.查看系统中的名称空间列表 2.单独查看一个名称空间下的对应资源 三、名称空间的管理 1.创建名称空间 1.1响应式创建 1.2声明式创建 2.删除名称空间 四、资源引用名称空间 一、Namespace(命名空间) 命名空间(Name…

深入解析算法效率核心:时间与空间复杂度概览及优化策略

算法复杂度,即时间复杂度与空间复杂度,衡量算法运行时资源消耗。时间复杂度反映执行时间随数据规模增长的关系,空间复杂度表明额外内存需求。优化策略,如选择合适数据结构、算法改进、循环展开等,对于提升程序效率、减…

如何用 Redis 实现延迟队列?

延迟队列是一种常见的消息队列模式,用于处理需要延迟执行的任务或消息。Redis 是一种快速、开源的键值对存储数据库,具有高性能、持久性和丰富的数据结构,因此很适合用于实现延迟队列。在这篇文章中,我们将详细讨论如何使用 Redis…

树莓派控制步进电机(下):软件编程

目录 说明 软件编程 树莓派的RPI编程 基本测试程序 参考文献 说明 在上一篇博文中我们介绍了树莓派控制步进电机所需要的硬件连接,本篇博文主要介绍软件编程。这里我们使用的是树莓派4B开发板,步进电机为6线两相步进电机,驱动器采用的是…

TypeScript 的 interface

在TypeScript(TS)中,interface 是一个非常核心的概念,用于定义类型结构。它帮助开发者为对象、函数参数或者返回值等设定一种结构化的类型规范。接口允许你定义一个蓝图,描述一个对象应该具有的形状(属性和…

【More Effective C++】条款25:将构造函数和非成员函数虚拟化

构造函数虚化: NewsLetter构造函数,能根据不同数据建立不同类型的对象,行为与构造函数相似; class NLComponent {}; class TextBlock: public NLComponent {}; class Graphic: public NLComponent {}; class NewsLetter { publi…

Telegram电报+86手机接收验证码及账号解封方法

Telegram电报86手机无法接受验证码目前可用Telegram X获取,测试可用。获取验证码的前提是需要确保网络通畅 不要同一时段获取超过太多验证码,获取过多验证码将会很长一段时间收不到验证码,6小时最多获取2次验证码。 方法1:使用官…

HTML_CSS学习:背景、鼠标相关属性

一、背景相关属性 相关代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>背景相关属性</title><style>body{background-color: greenyellow;}div{width: 400px;height: …

Java 基础面试 -- 异常处理

一、引言 在Java编程中&#xff0c;异常处理是确保程序稳定性和健壮性的重要机制。当程序在运行时遇到不可预见的问题&#xff0c;如文件读取失败、网络错误、除零异常等&#xff0c;异常处理机制允许我们捕获这些错误&#xff0c;并进行相应的处理&#xff0c;从而避免程序崩…