MacOS 上安装并配置 OpenJDK 图文详细版

news2024/7/31 20:25:27

1、概述

1.1、什么是 OpenJDK ?

OpenJDK 是 Java 的一个开源实现,由 Sun Microsystems 于2006年开始发布,是 Java SE 平台(Java Standard Edition)的参考实现之一。OpenJDK 是由 GPL v2 授权下的自由软件,可用于开发商业软件并且可以免费下载和使用。

OpenJDK 项目的目标是创建一个高度可伸缩、高性能、开源的Java虚拟机。这个项目的代码库包含了 Java SE 7、8、9、10、11、12、13、14、15、16、17、18 以及 19 的源代码,同时也包括了 JDK(Java Development Kit)、JRE(Java Runtime Environment)、JVM(Java Virtual Machine)以及其他工具和库。除了 Oracle 公司之外,还有其他许多公司和个人参与了 OpenJDK 项目的开发和维护,包括了 Red Hat、IBM、Azul Systems 等。由于 OpenJDK 是一个开源项目,因此它也成为了许多其他 Java 实现的基础,如 Amazon Corretto、Alibaba Dragonwell、AdoptOpenJDK 等。

总体来说,OpenJDK 的优势在于它是一个开源、可定制和可扩展的 Java 实现,由于其源代码公开,因此开发者可以自由地修改和优化 OpenJDK 的代码以满足自己的需求。此外,OpenJDK 还受到了广泛的社区支持,使得其能够不断地更新和改进,使得其具有更好的稳定性和性能。

1.2、OpenJDK 和 JDK 有什么区别?

OpenJDK 是由 Oracle 公司主导的,以 GPL 许可证发布的 JDK 实现。而 JDK 是指由 Oracle 公司发布的 Java Development Kit,是一个标准化的 Java 开发工具包。因此,可以说 OpenJDK 是 JDK 的一个开源实现。从功能和性能方面来说,OpenJDK 和 JDK 基本上是相同的。但是,由于 Oracle JDK 是商业产品,需要购买许可证才能使用,在这种情况下,OpenJDK 为企业和开发人员提供了一个免费的选择。此外,OpenJDK 也为开发人员提供了更好的代码可访问性和透明性,因为他们可以查看 OpenJDK 的源代码,从而更好地理解 Java 技术的内部工作原理。

2、OpenJDK 下载

2.1、官网地址

OpenJDK 官网地址

在这里插入图片描述

2.2、下载地址

OpenJDK 下载地址

在这里插入图片描述

选择我们需要安装的 OpenJDK版本,这里以 OpenJDK 17 为例,下载 macOS 版本

在这里插入图片描述

3、OpenJDK 安装

选择一个安装目录,例如:Users/woniu/openjdk,把我们下载好的压缩文件解压到该目录,如下图所示:(安装目录可以随意指定)

在这里插入图片描述

4、OpenJDK 配置

4.1、打开环境变量文件

# 这终端命令窗口输入
cd ~

# 打开环境变量配置文件
open .bash_profile

# 报错:.bash_profile does not exist.
# 第一次配置环境变量,先创建文件
touch .bash_profile

# 再次执行打开环境变量配置文件

4.2、配置 OpenJDK 环境变量

# 复制如下内容,JAVA_HOME 替换为自己目录
export JAVA_HOME=/Users/woniu/openjdk/jdk-17.0.2.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH:.
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.

# 配置文件立即生效
source .bash_profile

4.3、检查环境变量

# 查看 JAVA_HOME 目录
echo $JAVA_HOME

# 查看 JDK 版本信息
java -version

如果您需要 JDK 的安装和下载,可以参考我的另一篇文章《 快速搞定 MAC 系统 JDK 安装及环境变量配置,让你的开发之路更加顺畅》

如果您需要安装多个版本 JDK ,可以参考我的另一篇文章《MAC 系统多版本 JDK 安装指南:让你在开发中轻松应对不同版本需求》

本文教程到此结束,祝愿小伙伴们在编程之旅中能够愉快地探索、学习、成长!

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

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

相关文章

Msray-Plus采集工具帮您快速获取数据,让您的市场营销更加精细

随着互联网的不断发展,数据已经成为企业竞争的重要资产之一。市场营销人员需要通过数据来了解客户需求、市场趋势和竞争对手情况,从而制定更加精细的市场营销策略。然而,采集数据并不是一件容易的事情,需要耗费大量的时间和精力。…

Java多线程基础学习(一)

1. 创建线程 1.1 通过构造函数:public Thread(Runnable target, String name){} 或:public Thread(Runnable target){} 示例: Thread thread1 new Thread(new MyThread(), "mythread"); class MyThread extends Thread(){public void …

天阳转债上市价格预测

天阳转债 基本信息 转债名称:天阳转债,评级:AA-,发行规模:9.75亿元。 正股名称:天阳科技,今日收盘价:15.68元,转股价格:14.92元。 当前转股价值 转债面值 / …

RHCE---服务+ansible

一、命令提示符颜色 也可以写入配置文件/etc/profile [rootmaster ~]# vim .bashrc 绿色: PS1\[\033[01;32m\]\u\H:\[\033[01;34m\]\w\$\[\033[00m\] 粉红色: PS1\[\e[1;35m\]\u\h:\[\e[0m\]\[\e[1;33m\]\w\[\e[1;35m\]\[\e[0m\]\[\e[1;34m\]\$ \[\e[0…

[架构之路-168]-《软考-系统分析师》-4-据通信与计算机网络-4/5- 常见网络设备与网络工程

目录 4 . 4 网络互连与常用设备 1 . 网络互连设备 2 . 交换技术 3 . 路由技术 4 . 5 网络工程 4.5.1 网络规划(要做什么?打算怎么做? 什么时间做?) 1 . 网络需求分析 2 . 可行性研究 3 . 对现有网络的分析与描…

【Dom获取属性操作】JavaScript 全栈体系(十)

Web APIs 第四章 操作元素属性 一、操作元素常用属性 还可以通过 JS 设置/修改标签元素属性&#xff0c;比如通过 src更换 图片最常见的属性比如&#xff1a; href、title、src 等语法&#xff1a; 对象.属性 值 <!DOCTYPE html> <html lang"en">&…

【c#串口通信(4)】串口调试助手的使用

前言: 关于本文中使用到的串口助手工具,订阅专栏后,加入vip群,即可在群文件免费下载 1、打开串口 1.1 选择端口号 在下图的箭头所指处,选择下拉框中你想打开的串口,因为我之前使用虚拟串口工具虚拟了COM1、COM3,所以我可以先选择COM2 1.2 设置好参数 1.2.1 波特率:…

Python数据结构与算法篇(九)--单调栈与单调队列

1 单调栈 1.1 介绍 栈&#xff08;stack&#xff09;是很简单的一种数据结构&#xff0c;先进后出的逻辑顺序&#xff0c;符合某些问题的特点&#xff0c;比如说函数调用栈。 单调栈实际上就是栈&#xff0c;只是利用了一些巧妙的逻辑&#xff0c;使得每次新元素入栈后&#x…

rhcse中配置DNS的正反向解析

实验一 正向解析 服务端ip 192.168.9.30 客户端ip 192.168.9.31 网址 www.openlab.com 安装DNS软件 服务端 [rootlocalhost ~]# yum install bind -y 客户端与服务端相同 编辑DNS主配置文件 修改其中的11和19行 listen-on port 53 { any; }; allow-query { a…

homeassistant配置MQTT集成以及传感器实体(STM32连接进入homeassistant)

大家可以看作者的小破站教学视频&#xff08;如果喜欢的话可以点个关注&#xff0c;给个三联&#xff01;啊哈哈哈哈哈哈&#xff09;&#xff1a; 【homeassistant配置MQTT集成以及传感器实体&#xff08;STM32连接进入homeassistant&#xff09;】 最近homeassistan更新之后…

Python VTK计算曲面的高斯曲率和平均曲率

introduction&#xff1a; Python VTK计算曲面的高斯曲率和平均曲率&#xff0c;如何使用户Python版本的VTK计算曲面的高斯曲率并映射在曲面上。使用了两个不同的表面&#xff0c;每个表面根据其高斯曲率和平均曲率着色. Display: Step: 本文介绍了 如何使用户Python版本的V…

什么是软件开发脚手架?为什么需要脚手架?常用的脚手架有哪些?

什么是软件开发脚手架&#xff1f;为什么需要脚手架&#xff1f;常用的脚手架有哪些&#xff1f; 微服务本身是一种架构风格&#xff0c;也是指导组织构建软件的一系列最佳实践集合。然而&#xff0c;业务团队在拆分应用后&#xff0c;会产生更多细粒度服务&#xff0c;并面临…

基于LINUX实现ping发送与接收

作用 Linux ping 命令用于检测主机&#xff1a;执行 ping 会使用 ICMP 传输协议&#xff0c;发出要求回应的信息&#xff0c;若远端主机的网络功能没有问题&#xff0c;就会回应该信息&#xff0c;因而得知该主机运作正常。 基础使用 #ping 192.168.1.1//ping 主机ip#ping -…

【项目】视频列表滑动,自动播放

自动播放 期望效果&#xff0c;当滑动列表结束后&#xff0c;屏幕中间的视频自动播放HTML页面data变量实践操作&#xff01;重点来了&#xff01;滚动获得的数据实现效果源码&#xff08;粘贴即可运行&#xff09; 期望效果&#xff0c;当滑动列表结束后&#xff0c;屏幕中间的…

C. Anna, Svyatoslav and Maps(floyd + 思维)

Problem - C - Codeforces 给你一个有n个顶点的无权图&#xff0c;以及由m个顶点的序列p1,p2,...,pm给出的路径&#xff08;该路径不一定简单&#xff09;&#xff1b;对于每个1≤i<m&#xff0c;有一个弧从pi到pi1。 如果v是p的子序列&#xff0c;v1p1&#xff0c;vkpm&a…

重学Java设计模式-行为型模式-命令模式

重学Java设计模式-行为型模式-命令模式 内容摘自&#xff1a;https://bugstack.cn/md/develop/design-pattern/2020-06-21-重学 Java 设计模式《实战命令模式》.html#重学-java-设计模式-实战命令模式「模拟高档餐厅八大菜系-小二点单厨师烹饪场景」 命令模式介绍 图片来自&a…

后端查询到数据,前端显示该数据为null

问题展示&#xff1a; 数据库可视化界面。我们要展示record属性里面的值。 前端form表单&#xff1a; 后端属性&#xff1a; 后端sql语句&#xff1a; 接下来我们查询订单详情&#xff0c;ID8的订单。 后端控制台&#xff1a; 我们明显的看到&#xff0c;record这个属…

CSS选择器进阶1.2

一&#xff0c;复合选择器 1.1后代选择器&#xff1a;Space 作用&#xff1a;根据HTML标签的嵌套关系&#xff0c;选择父元素后代中满足条件的元素。 选择器语法&#xff08;选择器1为父选择器&#xff0c;选择器2为后代选择器&#xff09;&#xff1a; 选择器1 选择器2{CSS…

【HTML5】HTML5 语义化标签 ( HTML5 简介 | 新增特性 | 语义化标签及代码示例 )

文章目录 一、HTML5 简介二、HTML5 语义化标签三、HTML5 语义化标签代码示例 一、HTML5 简介 HTML5 指的是 对 HTML 语言的第五次重大修改 , 新增了新的元素 / 属性 / 行为 ; HTML5 新增的特性 : 语义特性本地存储特性设备兼容特性连接特性网页多媒体特性三维特性图形及特效特…

故障重现, JAVA进程内存不够时突然挂掉模拟

背景&#xff0c;服务器上的一个JAVA服务进程突然挂掉&#xff0c;查看产生了崩溃日志&#xff0c;如下&#xff1a; # Set larger code cache with -XX:ReservedCodeCacheSize # This output file may be truncated or incomplete. # # Out of Memory Error (os_linux.cpp:26…