从零开始—【Mac系统】MacOS配置Java环境变量

系统环境说明
Apple M1
macOS Ventura 版本13.5.2

1.下载JDK安装包

Oracle官网下载地址 JDK下载【注:推荐下载JDK8 Oracle官网JDK8下载】

关于JDK、JRE、JVM的关系说明

  • JDK(Java Development Kit,Java开发工具包) ,是整个JAVA的核心,包括JRE,很多Java工具(javac/java/jdb等)和Java基础类库

  • JRE(Java Runtime Environment Java运行环境) ,是 JDK 的子集

  • JVM(Java Virtual Machine,Java虚拟机), 是JRE的一部分。Java实现跨平台的核心部分,负责解释执行字节码文件,是可运行Java字节码文件的虚拟计算机

JDK、JRE、JVM 之间是什么关系, Java 平台标准中已经明确定义
Java1.8.*版本官方文档地址:https://docs.oracle.com/javase/8/docs/index.html

Oracle has two products that implement Java Platform Standard Edition (Java SE) 8: Java SE Development Kit (JDK) 8 and Java SE Runtime Environment (JRE) 8.↳
JDK 8 is a superset of JRE 8, and contains everything that is in JRE 8, plus tools such as the compilers and debuggers necessary for developing applets and applications. JRE 8 provides the libraries, the Java Virtual Machine (JVM), and other components to run applets and applications written in the Java programming language. Note that the JRE includes components not required by the Java SE specification, including both standard and non-standard Java components.
The following conceptual diagram illustrates the components of Oracle’s Java SE products:
JDK

2.双击安装JDK安装包

安装完成后,打开终端,输入

java -version

出现如下代码则为安装成功

java version "1.8.0_371"
Java(TM) SE Runtime Environment (build 1.8.0_371-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.371-b11, mixed mode)

3.配置环境变量

首先需要明确,有三个参数是需要配置的:JAVA_HOMEPATHCLASS_PATH

打开终端,输入

vi ~/.bash_profile

首次打开文件需要输入密码【自己电脑的密码】

用 Vim 打开环境文件后,按i进入插入模式,输入以下内容

#Setting PATH for JAVA 1.8
JAVA_HOME="/library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home"
PATH="$JAVA_HOME/bin:$PATH:"
CLASS_PATH="$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar"
export JAVA_HOME
export PATH
export CLASS_PATH

特别注意:JAVA_HOME 这一行路径中,我这里输入的【jdk-1.8.jdk】,你需要根据你自己下载的JDK版本名称进行替换,否则路径是不通的。
查看自己JDK文件夹名称的方法:打开访达(Finder),按Command + Shift + G,输入 /Library/Java/JavaVirtualMachines,回车键确认,即可看到。

.bash_profile文件内容输入完成后,按 Esc 退出 Vim 编辑模式,接着输入:wq保存并关闭文件。

4.测试是否安装成功

  • 打开终端,输入java,出现
用法: java [-options] class [args...](执行类)java [-options] -jar jarfile [args...](执行 jar 文件)
其中选项包括:-d32	  使用 32 位数据模型 (如果可用)-d64	  使用 64 位数据模型 (如果可用)-server	  选择 "server" VM默认 VM 是 server,因为您是在服务器类计算机上运行。-cp <目录和 zip/jar 文件的类搜索路径>-classpath <目录和 zip/jar 文件的类搜索路径>: 分隔的目录, JAR 档案和 ZIP 档案列表, 用于搜索类文件。-D<名称>=<>设置系统属性-verbose:[class|gc|jni]启用详细输出-version      输出产品版本并退出-version:<>警告: 此功能已过时, 将在未来发行版中删除。需要指定的版本才能运行-showversion  输出产品版本并继续-jre-restrict-search | -no-jre-restrict-search警告: 此功能已过时, 将在未来发行版中删除。在版本搜索中包括/排除用户专用 JRE-? -help      输出此帮助消息-X            输出非标准选项的帮助-ea[:<packagename>...|:<classname>]-enableassertions[:<packagename>...|:<classname>]按指定的粒度启用断言-da[:<packagename>...|:<classname>]-disableassertions[:<packagename>...|:<classname>]禁用具有指定粒度的断言-esa | -enablesystemassertions启用系统断言-dsa | -disablesystemassertions禁用系统断言-agentlib:<libname>[=<选项>]加载本机代理库 <libname>, 例如 -agentlib:hprof另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help-agentpath:<pathname>[=<选项>]按完整路径名加载本机代理库-javaagent:<jarpath>[=<选项>]加载 Java 编程语言代理, 请参阅 java.lang.instrument-splash:<imagepath>使用指定的图像显示启动屏幕
有关详细信息, 请参阅 http://www.oracle.com/technetwork/java/javase/documentation/index.html。
  • 输入javac,出现
用法: javac <options> <source files>
其中, 可能的选项包括:-g                         生成所有调试信息-g:none                    不生成任何调试信息-g:{lines,vars,source}     只生成某些调试信息-nowarn                    不生成任何警告-verbose                   输出有关编译器正在执行的操作的消息-deprecation               输出使用已过时的 API 的源位置-classpath <路径>            指定查找用户类文件和注释处理程序的位置-cp <路径>                   指定查找用户类文件和注释处理程序的位置-sourcepath <路径>           指定查找输入源文件的位置-bootclasspath <路径>        覆盖引导类文件的位置-extdirs <目录>              覆盖所安装扩展的位置-endorseddirs <目录>         覆盖签名的标准路径的位置-proc:{none,only}          控制是否执行注释处理和/或编译。-processor <class1>[,<class2>,<class3>...] 要运行的注释处理程序的名称; 绕过默认的搜索进程-processorpath <路径>        指定查找注释处理程序的位置-parameters                生成元数据以用于方法参数的反射-d <目录>                    指定放置生成的类文件的位置-s <目录>                    指定放置生成的源文件的位置-h <目录>                    指定放置生成的本机标头文件的位置-implicit:{none,class}     指定是否为隐式引用文件生成类文件-encoding <编码>             指定源文件使用的字符编码-source <发行版>              提供与指定发行版的源兼容性-target <发行版>              生成特定 VM 版本的类文件-profile <配置文件>            请确保使用的 API 在指定的配置文件中可用-version                   版本信息-help                      输出标准选项的提要-A关键字[=]                  传递给注释处理程序的选项-X                         输出非标准选项的提要-J<标记>                     直接将 <标记> 传递给运行时系统-Werror                    出现警告时终止编译@<文件名>                     从文件读取选项和文件名

至此,Java环境变量已配置成功。

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

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

相关文章

一篇文章带你走进测试工程师的世界

【软件测试行业现状】2023年了你还敢学软件测试&#xff1f;未来已寄..测试人该何去何从&#xff1f;【自动化测试、测试开发、性能测试】 一、 测试工程师&#xff1a; 1、 国内定位和发展前景&#xff1a; 测试工程师&#xff0c;软件质量的把关者&#xff0c;工作起点高&…

浅谈继承之默认成员函数

相信学习过C的哥们都知道的是&#xff0c;C三座大山&#xff0c;分别是类与对象&#xff0c;继承&#xff0c;多态&#xff0c;也是面向对象的三大特性。所以继承是我们学习C所不得不面对的坎&#xff0c;但是&#xff0c;我想说的是&#xff0c;你真的懂继承了吗&#xff1f;除…

毫米波雷达 TI IWR1443 在 ROS 中进行 octomap 建图

个人实验记录 /mmwave_ti_ros/ros_driver/src/ti_mmwave_rospkg/launch/1443_multi_3d_0.launch <launch><!-- Input arguments --><arg name"device" value"1443" doc"TI mmWave sensor device type [1443, 1642]"/><arg…

为您的SSH提提速

SSH是运维和开发人员接触比较多的工具&#xff0c;一般用SSH来连接远程服务器&#xff0c;这个是我的一些免费客户和企业客户经常使用的场景&#xff0c;当然SSH除了远程连接之外&#xff0c;还有很多额外的用途&#xff0c;比如SSH本身是具备代理功能的&#xff0c;我们也有一…

FastChat 大模型部署推理;Baichuan2-13B-Chat测试、chatglm2-6b测试

参考&#xff1a; https://github.com/lm-sys/FastChat https://blog.csdn.net/qq128252/article/details/132759107 ##安装 pip3 install "fschat[model_worker,webui]"1、chatglm2-6b测试 python3 -m fastchat.serve.cli --model-path ./chatglm2-6b --num-gpus …

java多线程学习笔记一

一、线程的概述 1.1 线程的相关概念 1.1.1 进程&#xff08;Process&#xff09; 进程&#xff08;Process&#xff09;是计算机的程序关于某数据集合上的一次运行活动&#xff0c;是操作系统进行资源分配与调度的基本单位。 可以把进程简单的理解为操作系统中正在有运行的一…

摸鱼也摸鱼之在线数独自动求解

背景 在发现被老板CPU之后&#xff0c;大家想做的基本上都是摸鱼&#xff0c;像我这种没什么手法的人不可能摸鱼打MOBA游戏&#xff0c;所以只能选择数独这种对时间要求不怎么急促的小游戏。然而&#xff0c;有时候搞半天才发现从一开始就错了&#xff0c;这让我很苦恼&#x…

【Java 基础篇】Java Supplier 接口详解

在Java中&#xff0c;Supplier接口是一个重要的函数式接口&#xff0c;它属于java.util.function包&#xff0c;用于表示一个供应商&#xff0c;它不接受任何参数&#xff0c;但可以提供一个结果。Supplier通常用于延迟计算或生成值的场景。本文将详细介绍Supplier接口的用法以…

【算法】滑动窗口破解长度最小子数组

Problem: 209. 长度最小的子数组 文章目录 题意分析算法原理讲解暴力枚举O(N^2)利用单调性&#xff0c;滑动窗口求解 复杂度Code 题意分析 首先来分析一下本题的题目意思 题目中会给到一个数组&#xff0c;我们的目的是找出在这个数组中 长度最小的【连续】子数组&#xff0c;而…

第P6周—好莱坞明星识别(2)

五、模型训练 # 训练循环def train(dataloader, model, loss_fn, optimizer):size len(dataloader.dataset) # 训练集的大小num_batches len(dataloader) # 批次数目train_loss, train_acc 0, 0 # 初始化训练损失和正确率for X, y in dataloader: # 获取图片及其标签X…

k8s集群-3 pod 管理

pod是可以创建和管理k 8 s 计算的最小可部署单元&#xff0c;一个pod 代表着集群中运行的一个进程&#xff0c;每个pod 都有一个唯一的ip 一个pod 类似一个豌豆荚&#xff0c;包含一个或者多个容器&#xff0c;多个容器间共享IPC Network和UTC namespace pod 包裹了容器 下载…

【MySQL】 MySQL索引事务

文章目录 &#x1f6eb;索引&#x1f38d;索引的概念&#x1f333;索引的作用&#x1f384;索引的使用场景&#x1f340;索引的使用&#x1f4cc;查看索引&#x1f4cc;创建索引&#x1f332;删除索引 &#x1f334;索引保存的数据结构&#x1f388;B树&#x1f388;B树&#x…