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

2023-09-20 16:04:17

系统环境说明
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环境变量已配置成功。

更多推荐

【TCP】三次握手 与 四次挥手 详解

三次握手与四次挥手1.三次握手2.四次挥手三次握手和四次挥手的区别在正常情况下,TCP要经过三次握手建立连接,四次挥手断开连接1.三次握手服务端状态转化:[CLOSED->LISTEN]服务器端调用listen后进入LISTEN状态,等待客户端连接;[LISTEN->SYN_RCVD]一旦监听到连接请求(同步报文段SY

【Go 基础篇】Windows 开发常用 Dos 命令

介绍在计算机开发领域,命令行工具是开发者的得力助手,能够快速、高效地完成各种任务。在Windows操作系统中,DOS(DiskOperatingSystem)命令是一组强大的命令行工具,用于进行文件操作、目录管理、进程控制等各种操作。虽然现代开发环境提供了图形界面和可视化工具,但掌握常用的DOS命令仍然是一项必要的技能

SpringMVC中的自定义注解

目录简介注解(Annotation)在Java编程中的作用SpringMVC中的自定义注解Java注解是什么?为什么在Java开发中注解变得如此重要?Java注解分类1.标准注解(JDK基本注解)2.自定义注解JDK基本注解JDK元注解自定义注解如何使用自定义注解?案例1:获取类与方法上的注解值案例二:获取类属性上的注

前端构建工具 webpack 笔记

1、了解webpack1、定义:本质上,webpack是一个用于现代JavaScript应用程序的静态模块打包工具,当webpack处理应用它会在内部从一个或多个入口点构建一个依赖图(dependencygraph),然后将你项目中所程序时,需的每一个模块组合成一个或多个bundles,它们均为静态资源,用于展示你的内

Flink 类型机制 及 Stream API和Table API类型推断和转换

注:本文使用flink版本是0.13一、类型体系Flink有两大API(1)streamAPI和(2)TableAPI,分别对应TypeInformation和DataType类型体系。1.1TypeInformation系统TypeInformation系统是使用Stream一定会用到的。TypeInformatio

Vue知识系列(7)每天10个小知识点

目录系列文章目录Vue知识系列(1)每天10个小知识点Vue知识系列(2)每天10个小知识点Vue知识系列(3)每天10个小知识点Vue知识系列(4)每天10个小知识点Vue知识系列(5)每天10个小知识点Vue知识系列(6)每天10个小知识点知识点61.**Vue**过滤器的概念、作用、特性、优点、缺点、区别、使用场

如何利用 MidJourney 进行 AI 艺术创作(详细教程)

文章目录什么是MidJourney?MidJourney入门第1步:设置Discord第2步:注册订阅MidJourney了解MidJourney的工具和功能在MidJourney中进行AI艺术创作Tips小技巧简明扼要使用样式和媒介组合概念关于MidJourney的思考什么是MidJourney?Midjourney

三维展示技术让未来项目更加裸眼3D可视化展示在观众面前

三维展示系统分为三维虚拟模型和三维实体模型,三维虚拟模型多为软件制图和后期成像进行展示供人们观赏,三维实体模型为采用各种可塑性材料根据三维虚拟模型制作出的实物,相比三维虚拟模型,三维实体模型更具有收藏与展示的价值,三维实体模型可用于楼盘展示,车型展示与人物艺术展示。现有技术中三维实体模型中的三维模型展示只有简单的保护罩

云原生Kubernetes:K8S存储卷

目录一、理论1.存储卷2.emptyDir存储卷3.hostPath卷4.NFS共享存储二、实验1.emptyDir存储卷2.hostPath卷3.NFS共享存储三、问题1.生成pod一直pending四、总结一、理论1.存储卷(1)概念容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。

[2023.09.13]: Rust Lang,避不开的所有权问题

Rust的所有权问题,在我学Rust的时候就跳过了,因为我知道这玩意儿没有场景就不好理解。没想到场景很快就出现了。在开发Yew应用组件的时候,涉及到了事件,闭包,自然就引出了所有权问题。话不多说,下面让我们直接进入代码场景,去体验并了解Rust的所有权机制吧。下面这段代码是能够正常工作的。这段代码的逻辑意图也很简单,这

Linux MQTT智能家居项目(网络基础知识)

文章目录前言一、IP和端口的作用1.IP2.端口二、路由器的转发作用三、MQTT概念总结前言本篇文章带大家来做一个LinuxMQTT智能家居项目,这个项目将会讲解到网络的基础知识和MQTT协议一些相关的知识。一、IP和端口的作用1.IPIP(InternetProtocol):IP是一种网络层协议,它负责在互联网中标识

热文推荐