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已成功安装。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

生成gitee公钥

1、打开设置 2、设置SSH公钥 3、生成公钥 4、复制终端输出的公钥,放到这里,标题随便取。 5、测试 ssh -T gitgitee.com 最后用这个测试

springboot + slf4j + log4j2

<!--Web依赖--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifact…

QT创造一个新的类(柱状图的类),并关联属性和方法

1.以在UI上添加柱状图的类为例&#xff08;Histogram&#xff09; #ifndef STUDY_HISTOGRAM_H #define STUDY_HISTOGRAM_H#include <QVector> #include <QWidget>// 前向声明 QT_BEGIN_NAMESPACE class QColor; class QRect; class QString; class QPaintDevice; …

vue3 element-plus 让el-container占满屏幕

在刚开始用element-plus的布局时&#xff0c;发现无法占满屏幕&#xff1a; 在App.vue中添加如下css代码&#xff1a; <style>html, body, #app {margin: 0;padding: 0;height: 100%;} </style>同时布局代码所在的component如下所示&#xff1a; <template&g…

亚马逊云科技AWS免费证书-EC2服务器设计(含题库)

亚马逊云AWS官方程序员专属免费证书又来了&#xff01;这次证书是关于AWS EC2实例的设计和搭建&#xff0c;EC2作为AWS服务的核心&#xff0c;是学好AWS的第一步。强推没有任何AWS背景和转码的小伙伴去学&#xff01;学完也能变成AWS开发大神&#xff01; 证书名字叫Getting St…

嵌入式开发四:STM32 基础知识入门

为方便更好的学习STM32单片机&#xff0c;本篇博客主要总结STM32的入门基础知识&#xff0c;重点在于理解寄存器以及存储器映射和寄存器映射&#xff0c;深刻体会STM32是如何组织和管理庞大的寄存器&#xff0c;从而提高开发效率的&#xff0c;为后面的基于标准库的开发做好铺垫…

【C语言实现贪吃蛇】(内含源码)

前言&#xff1a;首先在实现贪吃蛇小游戏之前&#xff0c;我们要先了解Win32 API的有关知识 1.Win32 API Windows这个多作业系统除了协调应用程序的执行、分配内存、管理资源之外&#xff0c;它同时也是一个很大的服务中心&#xff0c;调佣这个中心的各种服务&#xff08;每一…

私有开源LLM实例的三个考虑因素

原文地址&#xff1a;three-considerations-for-private-open-source-llm-instances 2024 年 4 月 29 日 在生产应用中使用商业 LLM APIs 会带来明确且经过充分研究的风险。因此&#xff0c;企业越来越多地转向利用开源的私有托管LLM实例&#xff0c;并通过RAG技术进行增强。 介…

Qt 信号槽中信号重名解决办法

1、类似与Qt4中的写法&#xff1a; 2、函数指针 3、泛型 connect(ui->combox, QOverload<int>::of(&QCombox::currentIndexChanged), this ,&mainwindow::onindexchange);

如何使用免费软件从Mac恢复音频文件?

要从Mac中删除任何文件&#xff0c;背后是有原因的。大多数Mac用户都希望增加Mac中的空间&#xff0c;这就是为什么他们更喜欢从驱动器中删除文件以便出现一些空间的原因。一些Mac用户错误地删除了该文件&#xff0c;无法识别这是一个重要文件。例如&#xff0c;他们错误地从Ma…

【 书生·浦语大模型实战营】作业(七):大模型实战评测

【 书生浦语大模型实战营】作业&#xff08;七&#xff09;&#xff1a;大模型实战评测 &#x1f389;AI学习星球推荐&#xff1a; GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方向综述、论文等成体系的学…

远程链接linux

远程连接 ssh 远程登录操作&#xff0c;ssh会对用用户进行身份信息的验证&#xff0c;会对两台主机之间发通信数据进行加密 安装 ssh 远程登录的服务端 yum install -y openssh-server启动 ssh 服务 systemctl start ssh.service 关闭 ssh 服务 systemctl stop ssh.service …

基于Flask的岗位就业可视化系统(一)

前言 本项目综合了基本数据分析的流程&#xff0c;包括数据采集&#xff08;爬虫&#xff09;、数据清洗、数据存储、数据前后端可视化等 推荐阅读顺序为&#xff1a;数据采集——>数据清洗——>数据库存储——>基于Flask的前后端交互&#xff0c;有问题的话可以留言…

数据库(MySQL) —— DDL语句

MySQL—— DDL语句 什么是MySQL的DDL语句查看所有的所有数据库查看当前使用的数据库库操作创建库使用数据库删除库 表操作创建表查询当前库中所有的表查询表结构查询指定表的建表语句删除表 表修改删除字段修改数据类型修改字段名和字段类型重命名表删除指定表并重新创建该表 我…

【C++】命名冲突了怎么办?命名空间来解决你的烦恼!!!C++不同于C的命名方式——带你认识C++的命名空间

命名空间 导读一、什么是C?二、C的发展三、命名空间3.1 C语言中的重名冲突3.2 什么是命名空间&#xff1f;3.3 命名空间的定义3.4 命名空间的使用环境3.5 ::——作用域限定符3.6 命名空间的使用方法3.6.1 通过作用域限定符来指定作用域3.6.2 通过关键字using和关键字namespace…

【书生·浦语大模型实战营第二期】OpenCompass 大模型评测实战——学习笔记7

文章目录 使用OpenCompass评测llm的步骤实践操作 参考资料 为什么要做大模型的评测 为了了解llm的优势和限制指导和改进人类与llm的交互规划llm未来的发展根据llm的评测报告&#xff0c;针对不同的问题&#xff0c;选择最合适的模型 评测对象 基座模型和chat模型 使用OpenCo…

ArcGIS+ChatGPT双剑合璧:从数据读取到空间分析,一站式掌握GIS与AI融合的前沿科技!

目录 专题一 AI大模型应用 专题二 ArcGIS工作流程及功能 专题三 prompt的使用技巧 专题四 AI助力工作流程 专题五 AI助力数据读取 专题六 AI助力数据编辑与处理 专题七 AI助力空间分析 专题八 AI助力遥感分析 专题九 AI助力二次开发 专题十 AI助力科研绘图 专题十一…

基于php+mysql+html超市商品管理系统(含论文)

博主介绍&#xff1a; 大家好&#xff0c;本人精通Java、Python、Php、C#、C、C编程语言&#xff0c;同时也熟练掌握微信小程序、Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验&#xff0c;能够为学生提供各类…

IntelliJ IDEA - Auto filling Java call arguments 插件教程

首先&#xff0c;安装该插件&#xff0c;下载完毕后重启 IDEA 当 userService 中方法需要参数的时候&#xff0c;我们一般都是自己手动写这些参数&#xff0c;是很费劲的。因此就出现了一个插件解决这类问题 Auto filling Java call arguments 光标点击需要填写参数的位置 Alt …

蓝桥杯备战国赛1

开心的金明 火烧赤壁 南蛮图腾 #include<iostream> #include<algorithm> #include<cmath> using namespace std; int n, m; int v[30], k[30]; int arr[30010][30]; int main() {cin >> n >> m;for (int i 1;i < m;i){cin >> v[i] &g…