macOS版Java开辟情况搭建

打印 上一主题 下一主题

主题 520|帖子 520|积分 1560



1.Mac平台CPU架构和Rosetta

1.1 Mac平台CPU架构

早期Mac电脑都是利用Intel CPU,但是2020年以后苹果在ARM架构基础上本身研发CPU,比方M1 Max,M2 Pro,M2 Max,M2 Ultra,M3 Max ,M3 Ultra等等用于差别的Mac电脑(MacBook Air,MacBook Pro,Mac Studio,Mac Pro)

因此苹果的Mac电脑有Intel x86架构ARM架构两种差别的CPU架构
那么问题来了,怎样知道本身所利用Mac电脑的CPU架构?
在macOS Sonoma点击左上角的苹果菜单,然后选择关于本机

在弹出的面板中看到芯片是Apple开头的就是ARM架构

而macOS Monterey在弹出的概览窗口中看到芯片包含Intel就是 Intel x86架构

正是由于两种差别的CPU架构,直接导致基于Intel x86架构开辟的步伐(比方阿里旺旺、金山文档、亿图图示等等)是无法直接运行在基于ARM架构的CPU上,比方M1 Max,M1 Ultra,M2 Max,M2 Ultra,M3 Max,M3 Ultra等等
1.2 Rosetta

1.2.1 什么时间需要Rosetta

苹果公司提供了一个翻译工具-Rosetta 2,通过 Rosetta 2,搭载 Apple 芯片的 Mac 可以利用专为配备 Intel 处置惩罚器的 Mac 构建的 App,如许也就意味着以前为Intel CPU开辟的步伐可以通过Rosetta 2 运行在苹果芯片的Mac电脑上,比方阿里旺旺、金山文档等等。
1.2.2 怎样安装Rosetta

Rosetta 2 仅适用于搭载 Apple 芯片的 Mac 电脑。
首次安装或者打开需要 Rosetta 的 App 时,比方阿里旺旺,恒星播放器,金山文档等等,系统会要求您安装 Rosetta。点按“安装”,然后输入您的用户名和密码以允许继续安装。


如果您点按“以后”,则下次打开需要 Rosetta 的 App 时,系统会再次要求您安装 Rosetta。
如果 Rosetta 已经安装,则系统不会再次要求您安装,也就是仅仅需要安装一次。
1.2.3 怎样利用Rosetta

您不需要打开 Rosetta 或与这个 App 互动。每当您利用专为搭载 Intel 处置惩罚器的 Mac 电脑构建的 App 时,Rosetta 都会在背景自动运行。Rosetta 会转换相应 App,使它可以与 Apple 芯片搭配利用。 对于需要 Rosetta 的 App,在大多数情况下,您不会察觉它的性能有任何差别。不过,您应该接洽 App 开辟者,以扣问相应 App 有没有一个版本可以大概以原生方式来充实利用 Apple 芯片的功能和性能。
1.2.4 哪些应用需要Rosetta

要识别需要 Rosetta 或者可以利用 Rosetta 的 App,请按照以下步骤操作:
在“访达”中选择一个 App。 从菜单栏的“文件”菜单中,选取“表现简介”。

检察标有“种类”字样的信息: 应用步伐 (Intel) 表示 App 仅支持 Intel 处置惩罚器,并且需要 Rosetta 才气在搭载 Apple 芯片的 Mac 上运行,比方阿里旺旺、金山文档、亿图图示



应用步伐(通用)表示 App 既支持 Apple 芯片也支持 Intel 处置惩罚器,并且在默认情况下利用 Apple 芯片。通用 App 不需要 Rosetta。比方微信、QQ、网易邮箱大师等等
对于标有“应用步伐(通用)”的 App,“简介”窗口包含“利用 Rosetta 打开”这项设置。通过这项设置,网页浏览器等通用 App 可以利用还没有更新为支持 Apple 芯片的插件、扩展或其他附加组件。如果某个通用 App 无法识别您为这个 App 安装的附加组件,您可以退出这个 App,选择这项设置,然后再试一次。



应用步伐(Apple芯片) 表示App是专门针对Apple芯片开辟的,比方M1 Max,M1 Ultra,M2 Max,M2 Ultra,M3 Max,M3 Ultra等等都属于Apple芯片。


2.macOS版Java8开辟情况搭建

2.1 macOS版Java8下载


  • 访问Java的官网,其访问所在是https://www.oracle.com/java/


  • 点击右上角的Download Java,跳转到Java的下载界面

Java的下载所在是https://www.oracle.com/java/technologies/downloads/

目前(2024/01/04)Oracle官方提供的最新Java版本(JDK版本)是Java21 和Java17,最新的LTS版本是Java21
本次我们下载的是Java8,所以往下滚动到Java8的下载

目前Java8支持四个操作系统

  • Linux
  • macOS
  • Solaris
  • Windows
大家在下载Java8的时间需要根据CPU和操作系统的版本选择对应版本的Java8

macOS Sonoma可以点击左上角的苹果菜单>关于本机

在弹出的面板中检察系统版本信息
目前本机利用的系统是macOS Sonoma 14.2.1,芯片是M1 Max


  • 选择ARM64 DMG Installer
如果你的Mac电脑利用的Intel CPU,那么选择macOS版 x64 DMG Installer的jdk-8u391-macosx-x64.dmg

如果你的Mac电脑利用的是Apple CPU,比方M1 Max,M1 Ultra,M2 Max,M2 Ultram,M3 Max等等,那么选择macOS版ARM64 DMG Installer的jdk-8u391-macosx-aarch64.dmg

由于本机利用的是Apple M1 Max CPU,因此选择macOS版ARM64 DMG Installer的jdk-8u391-macosx-aarch64.dmg


  • 下载jdk-8u391-macosx-aarch64.dmg
起首点击jdk-8u391-macosx-aarch64.dmg,然后勾选许可协议,最后点击 Download jdk-8u391-macosx-aarch64.dmg


  • 注册、登录Oracle账户
如果没有Oracle账户,大家可以在注册页面填写相应的信息注册Oracle账户

账户创建乐成以后,在登录页面填写账户信息登录Oracle账户

登录乐成之后浏览器会自动下载Java8利用快捷键 Option+Command+L 可以打开下载内容,检察下载的速度以及所需的时间

当Java8下载完成后,点击在Finder中表现

默认在下载目次(/Users/liuguanglei/Downloads)下会看到Java8的安装包jdk-8u391-macosx-aarch64.dmg

2.2 macOS版Java8安装

2.2.1 macOS版Java8安装过程


  • 双击Java8安装包jdk-8u391-macosx-aarch64.dmg



  • 双击JDK 8 Update 391.pkg启动安装器



  • 介绍
点击继续


  • 目的宗卷
你要怎样安装此软件?默认选择为这台电脑上的所有用户安装
选择一个目的宗卷:为这台电脑上的所有用户安装,点击继续


  • 安装类型
默认选择尺度安装,点击安装即可

安装之前安装器会提示 "安装器"正在实验安装新软件 利用触控ID或输入密码以允许此次操作

输入密码或者利用TouchID后安装器就会开始安装,安装过程仅需不到1分钟




  • 安装完成

安装完成后可以点击后续步骤?和关闭


  • 后续步骤?:跳转到Java8的官方文档



  • 关闭:关闭安装向导,完成Java8安装
关闭安装向导后还会提示你要将“JDK 8 Update 391”安装器移到废纸篓吗?,建议点击保留,如许下次重装时不需要重新下载Java8


  • 推出桌面的JDK 8 Update 391
选中桌面的JDK 8 Update 391,然后右键推出即可,当然也可以利用快捷键Command+E推出


2.2.2 macOS版Java8安装目次

默认情况下Oracle ARM64位架构macOS版Java8安装目次是/Library/Java/JavaVirtualMachines/jdk-1.8.jdk
依次点击访达>前往>前往文件夹,快捷键是Shift+Command+G

输入路径/Library/Java/JavaVirtualMachines/jdk-1.8.jdk后回车

即可进入该目次

不过我们需要相识的是/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home目次


作为Java初学者来说,目前只需要关注bin目次和src.zip压缩文件


  • bin目次:存放Java提供的开辟工具,比方javac,java,javadoc,javap等等



  • src.zip:存放Java源代码文件(.java结尾的文件)

可以双击src.zip解压后检察,默认解压在下载目次

src目次存放的是Java源代码文件(.java结尾)

比方检察String.java
String.java源文件位于src/java/lang目次下

Visual Studio Code是一个跨平台的文本编辑器,需要本身下载、安装后才气利用

利用Visual Studio Code文本编辑器打开String.java




2.3 macOS版Java8配置

2.3.1 macOS版Java8配置说明

当Oracle ARM64位架构macOS版Java8安装完成后,你会发现没有配置PATH情况变量,也可以在终端的恣意路径下利用javac和java,比方javac和java通过 -version选项检察Java编译器息争释器版本信息

没有配置JAVA_HOME情况变量,也可以在终端的maven bin目次(/Users/liuguanglei/Documents/soft/java/apache-maven-3.9.6/bin)下利用maven命令 mvn --version检察Maven版本信息以及依赖的Java情况信息,其中./表示当前路径

Q:如许是不是意味着不需要配置Java8的PATH情况变量和JAVA_HOME情况变量?
A:依然需要配置,由于后期我们会利用多个差别版本的JDK,比方在公司开辟项目时利用Java8,而学习Java新特性时利用Java17或者Java21,那么就会有切换Java版本的需求,因此还需要配置Java8的PATH情况变量和JAVA_HOME情况变量。
2.3.2 macOS版Java8配置JAVA_HOME情况变量

JAVA_HOME指的就是Java8的Home目次(/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home)


配置JAVA_HOME情况变量的目的就是方便配置Java的PATH情况变量以及通过修改JAVA_HOME情况变量实如今终端上切换差别版本的Java,比方Java8和Java17的相互切换,Java17和Java21的相互切换。

  • 启动终端
macOS内置终端步伐,你可以在步伐坞的启动台的其他中找到它

macOS内置终端

不过我利用的是第三方终端iTerm,该终端需要本身下载、安装后才气利用。

利用Command+空格键打开聚焦搜索,然后搜索iTerm,点击iTerm打开

就可以启动iTerm

不过iTerm默认的字体大小只有12,建议改成16
在启动iTerm后,起首点击菜单栏的iTerm>Settings,快捷键是Command+,

在Preferences>rofiles>Text将Font大小由12

改成16即可

修改完成以后点击Preferences左上角的x关闭窗口

建议将iTerm放到Dock栏,
其方法就是在启动iTerm后,右键选择步伐坞的iTerm,然后依次点击选项>在步伐坞中保留即可

以后只需要点击Dock栏的iTerm图标就可以启动iTerm终端


  • 检察系统所利用的Shell类型
差别的macOS系统利用的Shell类型差别,因此对应的配置文件差别
比方zsh利用的.zshrc,而bash利用的.bash_profile。
利用echo $SHELL 命令检察当前系统所利用的Shell类型
macOS Sonoma默认利用的zsh


  • 创建配置文件


  • 如果你利用的是bash shell,在用户家目次下创建.bash_profile文件
  • 如果你利用的是zsh shell,在用户家目次下创建.zshrc文件
macOS的用户家目次指的就是/Users/liuguanglei,其中liuguanglei表示用户名,每个系统的用户名可能不雷同。
当启动终端后默认就是在用户的家目次下,可以利用pwd命令检察当前所在的目次

macOS Sonoma利用的Shell是zsh,因此在用户的家目次(/Users/liuguanglei)下利用touch .zshrc命令创建.zshrc配置文件,文件创建乐成后利用 ls -al命令检察文件列表


  • 打开.zshrc配置文件
在终端上输入vim .zshrc命令回车后打开用户家目次的.zshrc配置文件

此时vim处于命令模式,无法编辑文件内容


  • 编辑.zshrc配置文件
需求:在.zshrc文件中添加Java8的JAVA_HOME情况变量
将输入法切换到英文后再按i键进入编辑模式,只有进入编辑模式后才气修改文件内容

配置Oracle ARM64位架构macOS版Java8的JAVA_HOME情况变量
  1. # 配置Oracle ARM64位架构macOS版Java8的JAVA_HOME环境变量   
  2. export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
复制代码

Oracle ARM64位架构macOS版Java8的JAVA_HOME情况变量配置完成后按esc键退出编辑模式回到命令模式


  • 保存并退出vim
输入法在英文状态下输入shift+:切换到底行模式,然后再输入wq回车后保存并退出vim

乐成保存并退出vim


  • 重新加载.zshrc配置文件
在重新加载.zshrc配置文件之前,先利用echo $JAVA_HOME检察JAVA_HOME情况变量,发现JAVA_HOME情况变量的值为空

输入source .zshrc 命令并回车,重新加载.zshrc配置文件,让当前Shell情况中设置的JAVA_HOME情况变量立即生效
   source 命令是在 Unix/Linux 系统中用于在当前 Shell 情况中实行指定脚本文件的命令。该命令通常用于重新加载修改过的 shell 配置文件,使更改立即生效,而不必注销并重新登录。
    详细来说,source 命令用于读取并实行指定的脚本文件,而不是启动一个新的进程来实行。这使得在当前 Shell 情况中设置的情况变量、别名以及其他配置更改可以大概立即生效。
  需要留意的是每次实行source .zshrc都会将.zshrc配置文件中的情况变量加载到当前Shell情况中(实行一次,加载一次)


  • 验证配置
在终端上输入 echo $JAVA_HOME命令回车后,如果可以大概输出Java8安装目次的Home目次(/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home ),则表示JAVA_HOME情况变量配置乐成

2.3.3 macOS版Java8配置PATH情况变量

2.3.3.1 PATH情况变量介绍

PATH情况变量的本质就是一系列路径,比方/bin,/usr/bin,/usr/local/bin等等,多个路径之间利用冒号(隔开,macOS下可以在终端上输入echo $PATH命令回车后检察系统PATH情况变量

PATH情况变量的作用就是在终端上实行命令时,系统会从当前路径和PATH情况变量配置的路径下查找命令对应的可实行步伐,然后实行该步伐。
比方date命令可以检察系统日期时间,而where date 可以检察到date命令对应可实行步伐的路径,正由于/bin目次在PATH情况变量中,因此在终端输入date命令实际上实行的是/bin目次下的date步伐

如果输入一个不存在的命令,那么shell会提示command not found**,**由于在PATH情况变量对应的路径下找不到一个名为datexxx的命令(步伐)

2.3.3.2 PATH情况变量利用

需求:实如今macOS终端(比方内置终端和第三方终端iTerm)的恣意路径下输入QQ就可以启动QQ

  • 查找QQ安装目次
macOS系统中所有的软件都安装在访达的应用步伐

选择QQ,右键 表现包内容

此时会打开Contents目次

而在Contents/MacOS下刚好有个QQ,它是一个Unix可实行文件

只要将它所在的路径(/Applications/QQ.app/Contents/MacOS)配置在PATH情况变量中即可实如今终端的恣意路径下输入QQ就可以启动QQ

  • 启动终端


  • 打开.zshrc配置文件
起首在终端上输入vim .zshrc命令回车后打开用户家目次的.zshrc配置文件

打开后可以看到Java8的JAVA_HOME情况变量的配置


  • 编辑.zshrc配置文件
此时vim处于命令模式无法编辑文件内容,需要将输入法切换到英文状态下后再按i键进入编辑模式

配置QQ的PATH情况变量
  1. # 配置QQ的PATH环境变量
  2. export PATH=$PATH:/Applications/QQ.app/Contents/MacOS
复制代码

QQ的PATH情况变量配置添加完成后按esc键退出编辑模式回到命令模式


  • 保存并退出vim
在英文状态下输入shift+:切换到底行模式,然后再输入wq并回车后保存并退出vim

乐成保存并退出vim


  • 重新加载.zshrc配置文件
在重新加载.zshrc配置文件之前,先利用echo $PATH检察系统PATH情况变量,发现系统PATH情况变量中没有包含QQ的PATH情况变量配置

输入source .zshrc 命令并回车,重新加载.zshrc配置文件,让当前Shell情况中设置的PATH情况变量立即生效


  • 验证配置
先在终端输入echo $PATH检察PATH情况变量,PATH情况变量必须包含QQ的PATH情况变量配置

然后在终端的恣意路径输入QQ回车后看是否可以大概启动乐成
如果可以大概启动QQ则表示QQ的PATH情况变量配置乐成
在用户的家目次启动QQ

在系统根目次启动QQ

2.3.3.3 macOS版Java8配置PATH情况变量


  • 启动iTerm


  • 打开.zshrc配置文件
在终端上输入vim .zshrc命令回车后打开用户家目次的.zshrc配置文件

打开后可以看到Java8的JAVA_HOME情况变量的配置以及QQ的PATH情况变量配置


  • 编辑.zshrc配置文件
此时vim处于命令模式无法编辑文件内容,需要将输入法切换到英文状态下后再按i键进入编辑模式

然后配置Oracle ARM64位架构macOS版Java8的PATH情况变量
  1. # 配置Oracle ARM64位架构macOS版Java8的PATH环境变量
  2.     export PATH=$PATH:/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home/bin
复制代码

配置Oracle ARM64位架构macOS版Java8的PATH情况变量后按esc键退出编辑模式回到命令模式


  • 保存并退出vim
输入法在英文状态下输入shift+:切换到底行模式,再输入wq并回车后保存并退出vim

乐成保存并退出vim


  • 重新加载.zshrc配置文件
在重新加载.zshrc配置文件之前,先利用echo $PATH检察系统PATH情况变量,发现系统PATH情况变量中没有包含Java8的PATH情况变量配置

输入source .zshrc 命令并回车,重新加载.zshrc配置文件,让当前Shell情况中设置的PATH情况变量立即生效


  • 验证配置
在终端上输入echo $PATH命令检察系统的PATH情况变量,如果PATH情况变量包含了Java8则表示配置乐成

不过仔细的同学会发现QQ的PATH情况变量被加载了两次,由于每实行一次source .zshrc命令,QQ的PATH情况变量被加载一次到当前Shell情况中

重新开启一个新的终端(command+n),在终端上输入echo $PATH 检察系统PATH情况变量时会发现QQ的PATH情况变量不再重复出现

同时也可以在终端的恣意路径下利用Java提供的命令,比方javac命令和java命令通过-version选项可以检察版本信息

2.3.3.4 macOS版Java8利用JAVA_HOME配置PATH情况变量

Q:为什么Java8要利用JAVA_HOME配置Path情况变量
A:切换JDK版本时只需要修改JAVA_HOME情况变量的值即可

  • 启动iTerm


  • 打开.zshrc配置文件
在终端上输入vim .zshrc命令回车后打开家目次的.zshrc配置文件

打开以后看到Java8的JAVA_HOME情况变量的配置、QQ的PATH情况变量配置以及Java8的PATH情况变量配置


  • 编辑.zshrc配置文件
此时vim处于命令模式无法编辑文件内容,需要将输入法切换到英文状态后再按i键进入编辑模式

然后利用JAVA_HOME情况变量配置Oracle ARM64位架构macOS版Java8的PATH情况变量
  1. # 使用JAVA_HOME环境变量配置Oracle ARM64位架构macOS版Java8的PATH环境变量
  2. export PATH=$PATH:$JAVA_HOME/bin
复制代码

利用JAVA_HOME情况变量配置Oracle ARM64位架构macOS版Java8的PATH情况变量后按esc键退出编辑模式回到命令模式


  • 保存并退出vim
输入法在英文状态下输入shift+:切换到底行模式,再输入wq回车后保存并退出vim

乐成保存并退出vim


  • 重新加载.zshrc配置文件
在加载.zshrc配置文件之前先在终端上输入echo $PATH检察系统PATH情况变量,发现系统PATH情况变量中包含Java8的PATH情况变量配置

输入source .zshrc 命令并回车,重新加载.zshrc配置文件,让当前Shell情况中设置的PATH情况变量立即生效


  • 验证配置
在终端上输入echo $PATH命令检察系统的PATH情况变量,如果PATH情况变量包含了Java8则表示配置乐成

仔细的同学会发如今系统PATH情况变量中QQ的PATH情况变量和Java8的PATH情况变量都被加载了两次,由于每实行一次source .zshrc命令,它们都会被加载一次到当前Shell情况中

如果重新开启新的终端,在终端上输入echo $PATH则会看到QQ的PATH情况变量以及Java8的PATH情况变量只加载一次

同时也可以在终端的恣意路径下利用Java提供的命令,比方javac和java通过-version选项可以检察版本信息

2.4 macOS版Java8卸载

Q:什么时间需要卸载Java8
A:如果不再利用(比方公司项目全部利用Java17开辟)Java8时就可以将其卸载
Oracle ARM64位架构macOS版Java8卸载需要删除Java8相干的目次以及文件,除此以外还要删除.zshrc情况变量配置文件,.zshrc情况变量配置文件配置了Java8的JAVA_HOME情况变量和PATH情况变量
2.4.1 删除Java8相干的目次和文件

Java8相干的目次和文件说明/Library/Java/JavaVirtualMachines/jdk-1.8.jdkJava8安装目次/Library/Application Support/Oracle/JavaJava8支持目次/Library/PreferencePanes/JavaControlPanel.prefPaneJava8控制面板首选项/Library/Internet Plug-Ins/JavaAppletPlugin.pluginJava8 Applet插件 /Library/Java/JavaVirtualMachines/jdk-1.8.jdk,该目次是Java8安装目次

/Library/Application Support/Oracle/Java,该目次是Java8支持目次

/Library/PreferencePanes/JavaControlPanel.prefPane,该文件是Java8控制面板首选项

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin,该文件是Java8 Applet 插件

删除Java8相干的目次和文件需要利用管理员权限在终端上利用rm命令结合 -rf选项实现

  • 启动终端


  • 删除Java8安装目次
删除Java8安装目次需要利用sudo rm -rf sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-1.8.jdk命令来完成。首次实行sudo rm -rf前需要输入用户的开机密码


  • 删除Java8应用步伐支持目次
删除Java8应用步伐支持目次需要在终端上实行sudo rm -rf /Library/Application\ Support/Oracle/Java命令


  • 删除Java8控制面板首选项
Java8 控制面板位于系统设置>Java


删除java8控制面板首选项需要在终端上实行 sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane 命令

删除完成后重新打开系统设置,系统设置的Java控制面板也会删除


  • 删除Java8 Applet插件
删除Java8 Applet插件需要在终端上实行sudo rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin命令

2.4.2 删除Java8情况变量配置文件


  • 启动终端


  • 删除Java8情况变量配置文件.zshrc
删除Java8情况变量配置文件.zshrc需要在终端上实行rm -f .zshrc命令


  • 验证Java8是否卸载乐成
删除.zshrc文件后,在终端的恣意路径利用javac -version和java -version检察Java编译器和Java解释器版本信息,如果提示The operation couldn’t be completed. Unable to locate a Java Runtime. Please visit http://www.java.com for information on installing Java.表示Java8卸载乐成

3.macOS版Java17开辟情况搭建

3.1 macOS版Java17下载


  • 访问Java的官网,其访问所在是https://www.oracle.com/java/


  • 点击右上角的Download Java,跳转到Java的下载界面

Java的下载所在是https://www.oracle.com/java/technologies/downloads/

目前(2024/01/04)Oracle官方提供的最新Java版本(JDK版本)是Java21 和Java17,最新的LTS版本是Java21
本次我们下载的是Java17,所以点击JDK17 切换到Java17的下载
根据 Oracle 免费条款和条件 (NFTC),JDK 17 二进制文件可以在生产中免费利用,并且可以免费重新分发。
JDK 17 将根据 NFTC 吸取更新,直至 2024 年 9 月。后续的 JDK 17 更新将根据 Java SE OTN 许可证 (OTN) 获得许可,超出 OTN 许可证有限免费授予的生产利用将需要付费。

目前Java17支持三个操作系统

  • Linux
  • macOS
  • Windows
大家在下载Java17的时间需要根据本身所利用CPU和操作系统的版本选择对应版本的Java17

macOS Sonoma可以点击左上角的苹果菜单

在弹出的面板中检察系统版本信息
目前本机利用的系统是macOS Sonoma 14.2.1,芯片是M1 Max


  • 选择ARM64 DMG Installer
如果你的Mac电脑利用的Intel CPU,那么选择macOS版 x64 DMG Installer的jdk-17_macos-x64_bin.dmg

如果你的电脑利用的是Apple CPU,比方M1 Max,M1 Ultra,M2 Max,M2 Ultra,M3 Max等等,那么选择macOS版ARM64 DMG Installer的jdk-17_macos-aarch64_bin.dmg

由于本机利用的是Apple M1 Max CPU,因此选择macOS版ARM64 DMG Installer的jdk-17_macos-aarch64_bin.dmg

4.下载jdk-17_macos-aarch64_bin.dmg
下载Oracle ARM64位架构macOS版Java17时目前不需要同意许可协议以及注册、登录Oracle账号
点击https://download.oracle.com/java/17/latest/jdk-17_macos-aarch64_bin.dmg下载Oracle ARM架构macOS版Java17

利用快捷键 Option+Command+L 可以打开下载内容,检察下载的速度以及所需的时间

当Java17下载完成后,点击在Finder中表现

默认在下载目次(/Users/liuguanglei/Downloads)下会看到Java17的安装包jdk-17_macos-aarch64_bin.dmg

3.2 macOS版Java17安装

3.2.1 macOS版Java17安装过程


  • 双击Java17安装包jdk-17_macos-aarch64_bin.dmg



  • 双击JDK 17.0.9.pkg启动安装器



  • 介绍
点击继续


  • 目的宗卷
你要怎样安装此软件?默认选择为这台电脑上的所有用户安装
选择一个目的宗卷:为这台电脑上的所有用户安装,点击继续


  • 安装类型
默认选择尺度安装,点击安装即可

安装之前安装器会提示 "安装器"正在实验安装新软件 利用触控ID或输入密码以允许此次操作

输入密码或者利用TouchID后安装器就会开始安装,安装过程几秒钟就可以完成



  • 安装完成

安装完成后可以点击访问JavaSE文档和关闭


  • 访问JavaSE文档:跳转到Java17的官方文档



  • 关闭:关闭安装向导,完成Java17安装
关闭安装向导时还会提示你要将“JDK 17.0.9”安装器移到废纸篓吗?,建议点击保留,如许下次重装时不需要重新下载Java17


  • 推出桌面的JDK 17.0.9
选中桌面的JDK 17.0.9,然后右键推出即可,当然也可以利用快捷键Command+E推出

推出乐成

3.2.2 macOS版Java17安装目次

默认情况下Oracle ARM64位架构macOS版Java17安装目次是/Library/Java/JavaVirtualMachines/jdk-17.jdk
依次点击访达>前往>前往文件夹,快捷键是Shift+Command+G

输入路径/Library/Java/JavaVirtualMachines/jdk-17.jdk后回车

可以进入该目次

不过我们需要相识的是/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home目次


Java17 Home目次说明
目次说明bin该目次下主要存放JDK的各种工具命令,比方javac和javaconf该目次下主要存放JDK相干的配置文件include该目次下主要存放一些平台的头文件jmods该目次下主要存放JDK的各种模块legal该目次下主要存放JDK各模块的授权文档lib该目次下主要存放JDK工具的一些增补jar包和源代码,Java源码src.zip在该目次下 作为Java初学者来说,目前只需要关注bin目次和lib文件夹中的src.zip压缩文件


  • bin目次:存放Java提供的开辟工具,比方javac,java,javadoc,javap



  • src.zip:存放Java源代码文件(.java结尾的文件)

可以双击src.zip解压后检察,默认解压在下载目次

src目次存放的是Java源代码文件(.java结尾)

比方检察String.java
String.java源文件在src/java.base/java/lang目次下
然后选择src/java.base/java/lang/String.java

Visual Studio Code是一个跨平台的文本编辑器,需要本身下载、安装后才气利用

利用Visual Studio Code文本编辑器打开String.java


3.3 macOS版Java17配置

3.3.1 macOS版Java17配置说明

当Oracle ARM64位架构macOS版Java17安装完成后,你会发现没有配置PATH情况变量,也可以在终端的恣意路径下利用javac和java,比方javac和java通过 -version选项检察Java编译器息争释器版本信息

没有配置JAVA_HOME情况变量,也可以在终端的maven bin目次**(/Users/liuguanglei/Documents/soft/java/apache-maven-3.9.6/bin利用maven命令 mvn --version检察Maven版本信息以及依赖的Java情况信息,其中./表示当前路径**

Q:如许是不是意味着不需要配置Java17的PATH情况变量和JAVA_HOME情况变量?
A:依然需要配置,由于后期我们会利用多个差别版本的JDK,比方在公司开辟项目时利用Java8,而学习Java新特性时利用Java17或者Java21,那么就会有切换Java版本的需求,因此还需要配置Java17的PATH情况变量和JAVA_HOME情况变量。
3.3.2 macOS版Java17配置JAVA_HOME情况变量

JAVA_HOME指的就是Java17的Home目次(/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home)


配置JAVA_HOME情况变量的目的就是方便配置Java的PATH情况变量以及通过修改JAVA_HOME情况变量实如今终端上切换差别版本的Java,比方Java8和Java17的相互切换,Java17和Java21的相互切换。

  • 启动Visual Studio Code

首次启动后,取消勾选启动后表现欢迎页



  • 打开/Users/liuguanglei目次


勾选信任作者

允许Visual Studio Code 访问其他App的数据

允许Visual Studio Code访问文稿 文件夹中的文件



  • 创建配置文件
macOS Sonoma利用的Shell是zsh,因此在家目次(/Users/liuguanglei)下创建.zshrc配置文件
在文件资源管理器右键New File

设置文件名为.zshrc后回车

Visual Studio Code会自动打开.zshrc配置文件


  • 编辑.zshrc配置文件
在.zshrc文件中配置Oracle ARM64位架构macOS版Java17的JAVA_HOME情况变量
  1. # 配置Oracle ARM64位架构macOS版Java17的JAVA_HOME环境变量
  2. export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
复制代码

配置完成后按command+s保存文件


  • 打开终端
依次点击Visual Studio Code菜单栏的Terminal>New Terminal

就可以启动Visual Studio Code内置的终端


  • 验证配置
在终端上输入 echo $JAVA_HOME命令回车后如果可以大概输出Java17的Home目次(/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home),则表示Java17的JAVA_HOME情况变量配置乐成

3.3.3 macOS版Java17配置PATH情况变量

3.3.3.1 PATH情况变量介绍

PATH情况变量的本质就是一系列路径,比方/bin,/usr/bin,/usr/local/bin等等,多个路径之间利用冒号(隔开,macOS下可以在终端上输入echo $PATH命令回车后检察系统PATH情况变量

PATH情况变量的作用就是在终端上实行命令时,系统会从当前路径和PATH情况变量配置的路径下查找命令对应的可实行步伐,然后实行该步伐。
比方date命令可以检察系统日期,而where date 可以检察到date命令对应的可实行步伐路径,正由于/bin目次在PATH情况变量中,因此在终端输入date命令实际上实行的是/bin目次下的date步伐

如果输入一个不存在的命令,那么shell会提示command not found,由于在PATH情况变量对应的路径下找不到一个名为datexxx的命令(步伐)

3.3.3.2 PATH情况变量的利用

需求:实如今macOS终端(比方内置终端和第三方终端iTerm)的恣意路径下输入QQ就可以启动QQ

  • 找到QQ安装目次
macOS系统中所有的软件都安装在访达的应用步伐

选择QQ,右键 表现包内容

此时会打开Contents目次

而在Contents/MacOS下刚好有个QQ,它是一个Unix可实行文件

只要将它所在的路径(/Applications/QQ.app/Contents/MacOS)配置在PATH情况变量中即可实如今终端的恣意路径下输入QQ回车后就可以启动QQ

  • 启动Visual Studio Code


  • 打开/Users/liuguanglei目次




  • 打开.zshrc配置文件
.zshrc配置文件位于/Users/liuguanglei目次下


  • 编辑.zshrc配置文件
配置QQ的PATH情况变量
  1.    # 配置QQ的PATH环境变量
  2.     export PATH=$PATH:/Applications/QQ.app/Contents/MacOS
复制代码

配置完成后按command+s保存


  • 启动终端
依次点击Visual Studio Code菜单栏的New Terminal>New Terminal

就可以启动Visual Studio Code内置的终端


  • 验证配置
在终端的恣意路径下实行echo $PATH检察系统PATH情况变量,如果系统PATH情况变量中是否已经包含QQ的PATH情况变量配置则表示QQ的PATH情况变量配置乐成

然后在终端的恣意路径输入QQ回车后看是否可以大概启动乐成
如果可以大概启动QQ则表示QQ的PATH情况变量配置乐成
在用户的家目次启动QQ

在根目次启动QQ

3.3.3.3 macOS版Java17配置PATH情况变量


  • 启动Visual Studio Code


  • 打开/Users/liuguanglei目次




  • 打开.zshrc配置文件
打开后可以看到Java17的JAVA_HOME情况变量的配置以及QQ的PATH情况变量配置


  • 编辑.zshrc配置文件
配置Oracle ARM64位架构macOS版Java17的PATH情况变量
  1. # 配置Oracle ARM64位架构macOS版Java17的PATH环境变量
  2. export PATH=$PATH:/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home/bin
复制代码

配置完成后按command+s保存


  • 启动终端
依次点击Visual Studio Code菜单栏的New Terminal>New Terminal

就可以启动Visual Studio Code内置的终端


  • 验证配置
起首在终端的恣意路径下实行echo $PATH检察系统PATH情况变量,如果系统PATH情况变量中包含Java17的PATH情况变量则表示Java17的PATH情况变量配置乐成

然后在终端的恣意路径利用Java提供的javac和java结合-version选项检察Java编译器息争释器的版本信息应该为Java17

3.3.3.4 macOS版Java17利用JAVA_HOME配置PATH情况变量

Q:为什么Java17要利用JAVA_HOME配置Path情况变量
A:切换JDK版本时只需要修改JAVA_HOME情况变量的值即可

  • 启动Visual Studio Code


  • 打开/Users/liuguanglei目次




  • 打开.zshrc配置文件
.zshrc配置文件位于/Users/liuguanglei目次下


  • 编辑.zshrc配置文件
利用JAVA_HOME情况变量配置Oracle ARM64位架构macOS版Java17的PATH情况变量
  1. # 使用JAVA_HOME环境变量配置Oracle ARM64位架构macOS版Java17的PATH环境变量
  2. export PATH=$PATH:$JAVA_HOME/bin
复制代码

配置完成后按command+s保存


  • 打开终端
依次点击Visual Studio Code菜单栏Terminal>New Terminal

就可以启动Visual Studio Code内置的终端


  • 验证配置
起首在终端的恣意路径下实行echo $PATH检察系统PATH情况变量,如果PATH情况变量包含Java17的PATH情况变量配置则表示Java17的PATH情况变量配置乐成

然后在终端的恣意路径利用Java提供的javac和java命令结合-version选项检察Java编译器息争释器的版本信息应该是Java17

3.4 macOS版Java17和Java8相互切换

由于开辟项目时利用Java8,但是学习JDK新特性时安装了Java17,因此此时机器上同时存在两个差别版本的JDK,分别是Oracle ARM64位架构macOS版的Java8和Java17

那么怎样在这两个版本中间切换?
起首需要知道当前利用的Java版本
在终端的恣意路径通过javac -version和java -version得知目前利用的是Java17

Q:为什么是Java17?
A:由于在.zshrc文件中JAVA_HOME情况变量的值是Java17的Home目次(/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home),而Java的PATH情况变量引用了JAVA_HOME情况变量,因此当前Java版本是Java17

那么想要实现Java8和Java17相互切换,只需要修改JAVA_HOME情况变量的值即可
3.4.1 macOS版Java17切换到Java8

想要从Java17切换到Java8,只需要将JAVA_HOME情况变量的值修改成Java8的Home路径(/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home)

  • 启动Visual Studio Code


  • 打开/Users/liuguanglei目次




  • 打开.zshrc配置文件


  • 编辑.zshrc配置文件
将JAVA_HOME情况变量的变量值修改成Java8的Home目次(/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home)

  1. # 配置Oracle ARM64位架构macOS版Java8的JAVA_HOME情况变量       export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home        # 配置QQ的PATH环境变量
  2.     export PATH=$PATH:/Applications/QQ.app/Contents/MacOS
  3.         # 利用JAVA_HOME情况变量配置Oracle ARM64位架构macOS版Java8的PATH情况变量    export PATH=$PATH:$JAVA_HOME/bin
复制代码
配置完成后按command+s保存


  • 启动终端
依次点击Visual Studio Code菜单栏的New Terminal>New Terminal

就可以启动Visual Studio Code内置的终端


  • 验证配置
起首在终端的恣意路径输入echo $JAVA_HOME,检察JAVA_HOME情况变量的变量值是否为Java8的Home目次

然后在终端的恣意路径利用Java提供的javac和java命令结合-version选项检察Java编译器息争释器的版本信息是否为Java8,如果是Java8则表示当前Java版本乐成从Java17切换到Java8

3.4.2 macOS版Java8切换到Java17

从Java8再次切换到Java17,只需要将JAVA_HOME情况变量的变量值改成Java17的Home目次(/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home)

  • 启动Visual Studio Code


  • 打开/Users/liuguanglei目次




  • 打开.zshrc配置文件


  • 编辑.zshrc配置文件

  1. # 配置Oracle ARM64位架构macOS版Java17的JAVA_HOME情况变量   export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home# 配置QQ的PATH环境变量
  2. export PATH=$PATH:/Applications/QQ.app/Contents/MacOS
  3. # 使用JAVA_HOME环境变量配置Oracle ARM64位架构macOS版Java17的PATH环境变量
  4. export PATH=$PATH:$JAVA_HOME/bin
复制代码
配置完成后按command+s保存


  • 启动终端
依次点击Visual Studio Code菜单栏的New Terminal>New Terminal

就可以启动Visual Studio Code内置的终端


  • 验证配置
起首在终端的恣意路径输入echo $JAVA_HOME,检察JAVA_HOME情况变量的变量值是否为Java17的Home目次

然后在终端的恣意路径利用Java提供的javac和java命令结合-version选项检察Java编译器息争释器的版本信息是否为Java17,如果是Java17则表示当前Java版本乐成从Java8切换到Java17

3.5 macOS版Java17卸载

Q:什么时间需要卸载Java17
A:如果不再利用(比方公司项目全部利用Java21开辟)Java17时就可以将其卸载
Oracle ARM64位架构macOS版Java17卸载需要删除Java17安装目次
除此以外还要**.zshrc删除情况变量配置文件**,.zshrc情况变量配置文件配置了Java21的PATH情况变量和JAVA_HOME情况变量。
3.5.1 删除Java17安装目次

Oracle ARM64位架构macOS版Java17的安装目次是/Library/Java/JavaVirtualMachines/jdk-17.jdk


  • 启动终端


  • 删除Java17的安装目次
删除Java17的安装目次需要利用sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-17.jdk命令来完成,首次实行sudo rm -rf前需要输入用户的开机密码

删除乐成后JavaVirtualMachines目次下看不到Java17的安装目次

3.5.2 删除Java17情况变量配置文件


  • 启动终端


  • 删除.zshrc配置文件
利用rm .zshrc命令 删除.zshrc配置文件

删除后利用Visual Studio Code打开/Users/liuguanglei目次后,看到不.zshrc文件

ls -al命令中也不会看到.zshrc文件


  • 验证Java17是否卸载乐成
删除Java17安装目次以及.zshrc配置文件后,在终端的恣意路径利用javac -version和java -version检察Java编译器和Java解释器版本信息,如果提示The operation couldn’t be completed. Unable to locate a Java Runtime. 表示Java17卸载乐成

4.macOS版Java21开辟情况搭建

4.1 macOS版Java21下载


  • 访问Java的官网,其访问所在是https://www.oracle.com/java/


  • 点击右上角的Download Java,跳转到Java的下载界面

Java的下载所在是https://www.oracle.com/java/technologies/downloads/

目前(2024/01/04)Oracle官方提供的最新Java版本(JDK版本)是Java21 和Java17,最新的LTS版本是Java21
本次我们下载的是Java21,所以点击JDK21 切换到Java21的下载
根据 Oracle 免费条款和条件 (NFTC),JDK 21 二进制文件可以在生产中免费利用,并且可以免费重新分发。
JDK 21 将根据 NFTC 吸取更新,直到 2026 年 9 月,即下一个 LTS 发布一年后。后续的 JDK 21 更新将根据 Java SE OTN 许可证 (OTN) 进行许可,并且超出 OTN 许可证有限免费授予的生产利用将需要付费。

目前Java21支持三个操作系统

  • Linux
  • macOS
  • Windows
大家在下载Java21的时间需要根据本身所利用CPU和操作系统的版本选择对应版本的Java21

macOS Sonoma可以点击左上角的苹果菜单

在弹出的面板中检察系统版本信息
目前本机利用的系统是macOS Sonoma 14.2.1,芯片是M1 Max


  • 选择ARM64 DMG Installer
如果你的Mac电脑利用的Intel CPU,那么选择macOS版 x64 DMG Installer的jdk-21_macos-x64_bin.dmg

如果你的电脑利用的是Apple CPU,比方M1 Max,M1 Ultra,M2 Max,M2 Ultra,M3 Max等等,那么选择macOS版ARM64 DMG Installer的jdk-21_macos-aarch64_bin.dmg

由于本机利用的是Apple M1 Max CPU,因此选择macOS版ARM64 DMG Installer的jdk-21_macos-aarch64_bin.dmg

4.下载jdk-21_macos-aarch64_bin.dmg
下载Oracle ARM架构 64位macOS版Java21时目前不需要同意许可协议以及注册、登录Oracle账号
点击https://download.oracle.com/java/21/latest/jdk-21_macos-aarch64_bin.dmg下载Oracle ARM64位架构macOS版Java21

利用快捷键 Option+Command+L 可以打开下载内容,检察下载的速度以及所需的时间

当Java21下载完成后,点击在Finder中表现

默认在下载目次(/Users/liuguanglei/Downloads)下会看到Java21的安装包jdk-21_macos-aarch64_bin.dmg

4.2 macOS版Java21安装

4.2.1 macOS版Java21安装过程


  • 双击Java21安装包jdk-21_macos-aarch64_bin.dmg



  • 双击JDK 21.0.1.pkg启动安装器



  • 介绍
点击继续


  • 目的宗卷
你要怎样安装此软件?默认选择为这台电脑上的所有用户安装
选择一个目的宗卷:为这台电脑上的所有用户安装,点击继续


  • 安装类型
默认选择尺度安装,点击安装即可

安装之前安装器会提示 "安装器"正在实验安装新软件 利用触控ID或输入密码以允许此次操作

输入密码或者利用TouchID后安装器就会开始安装,安装过程几秒钟就可以完成



  • 安装完成

安装完成后可以点击访问JavaSE文档和关闭


  • 访问JavaSE文档:跳转到Java21的官方文档



  • 关闭:关闭安装向导,完成Java21安装
关闭安装向导时还会提示你要将“JDK 21.0.1”安装器移到废纸篓吗?,建议点击保留,如许下次重装时不需要重新下载Java21


  • 推出桌面的JDK 21.0.1
选中桌面的JDK 21.0.1,然后右键推出即可,当然也可以利用快捷键Command+E推出

推出乐成

4.2.2 macOS版Java21安装目次

默认情况下Oracle ARM64位架构macOS版Java21安装目次是/Library/Java/JavaVirtualMachines/jdk-21.jdk
依次点击访达>前往>前往文件夹,快捷键是Shift+Command+G

输入路径/Library/Java/JavaVirtualMachines/jdk-21.jdk后回车


不过我们需要相识的是/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home目次


Java21 Home目次说明
目次说明bin该目次下主要存放JDK的各种工具命令,比方javac和javaconf该目次下主要存放JDK相干的配置文件include该目次下主要存放一些平台的头文件jmods该目次下主要存放JDK的各种模块legal该目次下主要存放JDK各模块的授权文档lib该目次下主要存放JDK工具的一些增补jar包和源代码,Java源码src.zip在该目次下man该目次下主要是存放JDK的帮助文档 作为Java初学者来说,目前只需要关注bin目次和lib文件夹中的src.zip压缩文件


  • bin目次:存放Java提供的开辟工具,比方javac,java,javadoc,javap



  • src.zip:存放Java源代码文件(.java结尾的文件)

可以双击src.zip解压后检察,默认解压在下载目次

src目次存放的是Java源代码文件(.java结尾)

比方检察String.java
String.java源文件在src/java.base/java/lang目次下
然后选择src/java.base/java/lang/String.java

Visual Studio Code是一个跨平台的文本编辑器,需要本身下载、安装后才气利用

利用Visual Studio Code文本编辑器打开String.java


4.3 macOS版Java21配置

4.3.1 macOS版Java21配置说明

当Oracle ARM64位架构macOS版Java21安装完成后,你会发现没有配置PATH情况变量,也可以在终端的恣意路径下利用javac和java,比方javac和java通过 -version选项检察Java编译器息争释器的版本信息

没有配置JAVA_HOME情况变量,也可以在终端的maven bin目次(/Users/liuguanglei/Documents/soft/java/apache-maven-3.9.6/bin)下利用maven命令 mvn --version检察Maven版本信息以及依赖的Java情况信息,其中./表示当前路径

Q:如许是不是意味着不需要配置Java21的PATH情况变量和JAVA_HOME情况变量?
A:依然需要配置,由于后期我们会利用多个差别版本的JDK,比方在公司开辟项目时利用Java8,而学习Java新特性时利用Java17或者Java21,那么就会有切换Java版本的需求,因此还需要配置Java21的PATH情况变量和JAVA_HOME情况变量。
4.3.2 macOS版Java21配置JAVA_HOME情况变量

JAVA_HOME指的就是Java21的Home目次(/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home)

配置JAVA_HOME情况变量的目的就是方便配置Java的PATH情况变量以及通过修改JAVA_HOME情况变量实如今终端上切换差别版本的Java,比方Java8和Java17的相互切换,Java17和Java21的相互切换。

  • 启动Visual Studio Code

首次启动后,取消勾选启动后表现欢迎页



  • 打开/Users/liuguanglei目次


勾选信任作者

允许Visual Studio Code 访问其他App的数据

允许Visual Studio Code访问文稿 文件夹中的文件



  • 创建配置文件
macOS Sonoma利用的Shell是zsh,因此在家目次(/Users/liuguanglei)下创建.zshrc配置文件
在文件资源管理器右键New File

设置文件名为.zshrc后回车

Visual Studio Code会自动打开.zshrc文件


  • 在配置文件中添加Java21的JAVA_HOME情况变量
在.zshrc文件中配置Oracle ARM64位架构macOS版Java21的JAVA_HOME情况变量
  1. # 配置Oracle ARM64位架构macOS版Java21的JAVA_HOME环境变量   
  2. export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home
复制代码

配置完成后按command+s保存文件


  • 打开终端
依次点击Visual Studio Code菜单栏的Terminal>New Terminal

就可以启动Visual Studio Code内置的终端


  • 验证配置
在终端上输入 echo $JAVA_HOME命令回车后如果可以大概输出Java21的Home目次(/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home ),则表示Java21的JAVA_HOME情况变量配置乐成

4.3.3 macOS版Java21配置PATH情况变量

4.3.3.1 PATH情况变量介绍

PATH情况变量的本质就是一系列路径,比方/bin,/usr/bin,/usr/local/bin等等,多个路径之间利用冒号(隔开,macOS下可以在终端上利用echo $PATH检察系统PATH情况变量

PATH情况变量的作用就是在终端上实行命令时,系统会从当前路径和PATH情况变量配置的路径下查找命令对应的可实行步伐,然后实行该步伐。
比方date命令可以检察系统日期,而where date 可以检察到date命令对应的可实行步伐路径,正由于/bin目次在PATH情况变量中,因此在终端输入date命令实际上实行的是/bin目次下的date步伐

如果输入一个不存在的命令,那么shell会提示command not found,由于在PATH情况变量对应的路径下找不到一个名为datexxx的命令(步伐)

4.3.3.2 PATH情况变量的利用

需求:实如今macOS终端(比方内置终端和第三方终端iTerm)的恣意路径下输入QQ就可以启动QQ

  • 找到QQ安装目次
macOS系统中所有的软件都安装在访达的应用步伐

选择QQ,右键 表现包内容

此时会打开Contents目次

而在Contents/MacOS下刚好有个QQ,它是一个Unix可实行文件

只要将它所在的路径(/Applications/QQ.app/Contents/MacOS)配置在PATH情况变量中即可实如今终端的恣意路径下输入QQ回车后就可以启动QQ

  • 启动Visual Studio Code


  • 打开/Users/liuguanglei目次




  • 打开.zshrc配置文件
.zshrc配置文件位于/Users/liuguanglei目次下


  • 编辑.zshrc配置文件
配置QQ的PATH情况变量
  1. # 配置QQ的PATH环境变量
  2. export PATH=$PATH:/Applications/QQ.app/Contents/MacOS
复制代码

配置完成后按Command+s保存


  • 打开终端
依次点击Visual Studio Code菜单栏的New Terminal>New Terminal

就可以启动Visual Studio Code内置的终端


  • 验证配置
在终端的恣意路径下实行echo $PATH检察系统PATH情况变量,如果系统PATH情况变量中是否已经包含QQ的PATH情况变量配置则表示QQ的PATH情况变量配置乐成

然后在终端的恣意路径输入QQ回车后看是否可以大概启动乐成
如果可以大概启动QQ则表示QQ的PATH情况变量配置乐成
在用户的家目次下启动QQ

在根目次下启动QQ

4.3.3.3 macOS版Java21配置PATH情况变量


  • 启动Visual Studio Code


  • 打开/Users/liuguanglei目次




  • 打开.zshrc配置文件
打开后可以看到Java21的JAVA_HOME情况变量的配置以及QQ的PATH情况变量配置


  • 编辑.zshrc文件
配置Oracle ARM64位架构macOS版Java21的PATH情况变量
  1.    # 配置Oracle ARM64位架构macOS版Java21的PATH环境变量
  2.     export PATH=$PATH:/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home/bin
复制代码

配置完成后按command+s保存


  • 启动终端
依次点击Visual Studio Code菜单栏的New Terminal>New Terminal

就可以启动Visual Studio Code内置的终端


  • 验证配置
起首在终端的恣意路径下实行echo $PATH检察系统PATH情况变量,如果系统PATH情况变量中包含Java21的PATH情况变量则表示Java21的PATH情况变量配置乐成

然后在终端的恣意路径利用Java提供的javac和java结合-version选项检察Java编译器息争释器的版本信息应该为Java21

4.3.3.4 macOS版Java21利用JAVA_HOME配置PATH情况变量

Q:为什么Java21要利用JAVA_HOME配置Path情况变量
A:切换JDK版本时只需要修改JAVA_HOME情况变量的值即可

  • 启动Visual Studio Code


  • 打开/Users/liuguanglei目次




  • 打开.zshrc配置文件
.zshrc配置文件位于/Users/liuguanglei目次下


  • 编辑.zshrc配置文件
利用JAVA_HOME情况变量配置Oracle ARM64位架构macOS版Java21的PATH情况变量
  1. # 使用JAVA_HOME环境变量配置Oracle ARM64位架构macOS版Java21的PATH环境变量
  2. export PATH=$PATH:$JAVA_HOME/bin
复制代码

配置完成后按command+s保存文件


  • 打开终端
依次点击Visual Studio Code菜单栏Terminal>New Terminal

就可以启动Visual Studio Code内置的终端


  • 验证配置
起首在终端的恣意路径下实行echo $PATH检察系统PATH情况变量,如果PATH情况变量包含Java21的PATH情况变量配置则表示Java17的PATH情况变量配置乐成

然后在终端的恣意路径利用Java提供的javac和java命令结合-version选项检察Java编译器息争释器的版本信息应该是Java21

4.4 macOS版Java21和Java17相互切换

由于开辟项目时利用Java17,但是学习JDK新特性时安装了Java21,因此此时机器上同时存在两个差别版本的JDK,分别是Oracle ARM64位架构macOS版本的Java17和Java21

那么怎样在这两个版本中间切换?
起首需要知道当前利用的Java版本
在终端的恣意路径通过javac -version和java -version得知目前利用的是Java21

Q:为什么是Java21?
A:由于在.zshrc配置文件中JAVA_HOME情况变量的值是Java21的Home目次(/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home),而Java的PATH情况变量引用了JAVA_HOME情况变量

那么想要实现Java17和Java21相互切换,只需要修改JAVA_HOME情况变量的值即可
4.4.1 macOS版Java21切换到Java17

想要从Java21切换到Java17,只需要将JAVA_HOME情况变量的值修改成Java17的Home路径(/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home)

  • 启动终端


  • 打开/Users/liuguanglei目次




  • 打开.zshrc配置文件


  • 编辑.zshrc配置文件
配置Oracle ARM64位架构macOS版Java17的PATH情况变量

  1. # 配置Oracle ARM64位架构macOS版Java17的JAVA_HOME情况变量   export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home# 配置QQ的PATH环境变量
  2. export PATH=$PATH:/Applications/QQ.app/Contents/MacOS
  3. # 使用JAVA_HOME环境变量配置Oracle ARM64位架构macOS版Java17的PATH环境变量
  4. export PATH=$PATH:$JAVA_HOME/bin
复制代码
配置完成后按command+s保存


  • 启动终端
依次点击Visual Studio Code菜单栏的New Terminal>New Terminal

就可以启动Visual Studio Code内置的终端


  • 验证配置
起首在终端的恣意路径输入echo $JAVA_HOME,检察JAVA_HOME情况变量的变量值是否为Java17的Home目次

然后在终端的恣意路径利用Java提供的javac和java命令结合-version选项检察Java编译器息争释器的版本信息是否为Java17,如果是Java17则表示当前Java版本乐成从Java21切换到Java17

4.4.2 macOS版Java17切换到Java21

从Java17再次切换到Java21,只需要将JAVA_HOME情况变量的变量值改成Java21的Home目次(/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home )

  • 启动Visual Studio Code


  • 打开/Users/liuguanglei目次




  • 打开.zshrc配置文件


  • 编辑.zshrc配置文件

  1. # 配置Oracle ARM64位架构macOS版Java21的JAVA_HOME环境变量   
  2. export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home
  3. # 配置QQ的PATH环境变量
  4. export PATH=$PATH:/Applications/QQ.app/Contents/MacOS
  5. # 使用JAVA_HOME环境变量配置Oracle ARM64位架构macOS版Java21的PATH环境变量
  6. export PATH=$PATH:$JAVA_HOME/bin
复制代码
配置完成后按command+s保存


  • 启动终端
依次点击Visual Studio Code菜单栏的New Terminal>New Terminal

就可以启动Visual Studio Code内置的终端


  • 验证配置
起首在终端的恣意路径输入echo $JAVA_HOME,检察JAVA_HOME情况变量的变量值是否为Java21的Home目次

然后在终端的恣意路径利用Java提供的javac和java命令结合-version选项检察Java编译器息争释器的版本信息是否为Java21,如果是Java21则表示当前Java版本乐成从Java17切换到Java21

4.5 macOS版Java21卸载

Q:什么时间需要卸载Java21
A:如果不再利用(比方公司未来的项目全部利用Java5开辟)Java21时就可以将其卸载
Oracle ARM64位架构macOS版Java21卸载需要删除Java21安装目次
除此以外还要删除.zshrc情况变量配置文件,.zshrc情况变量配置文件配置了Java21的PATH情况变量和JAVA_HOME情况变量。
4.5.1 删除Java21安装目次

Oracle ARM64位架构macOS版Java21的安装目次是/Library/Java/JavaVirtualMachines/jdk-21.jdk


  • 启动终端


  • 删除Java21的安装目次
删除Java21的安装目次需要利用sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-21.jdk命令来完成,首次实行sudo rm -rf前需要输入用户的开机密码

删除乐成后JavaVirtualMachines目次下看不到Java21的安装目次

4.5.2 删除Java21情况变量配置文件


  • 启动终端


  • 删除.zshrc配置文件
利用rm .zshrc命令 删除.zshrc配置文件

删除后利用Visual Studio Code打开/Users/liuguanglei目次后,看到不.zshrc配置文件

ls -al命令中也不会看到.zshrc文件


  • 验证Java21是否卸载乐成
删除Java21安装目次以及.zshrc文件后,在终端的恣意路径利用javac -version和java -version检察Java编译器和Java解释器版本信息,如果提示The operation couldn’t be completed. Unable to locate a Java Runtime.Please visit http://www.java.com for information on installing Java**.** 表示Java21卸载乐成

5.macOS版第一个Java步伐开辟

5.1 Java步伐开辟流程



  • 编写**:利用Java开辟工具**编写源文件,源文件以.java结尾,用于存储Java代码
  • 编译**:利用javac**把源文件编译生成字节码文件,字节码文件以.class结尾,字节码文件名和类名雷同,字节码文件的数目和源文件中class的数目雷同,编译的格式是javac 源文件名.java,比方javac HelloWorld.java
  • 运行:利用java解释运行编译生成后的字节码文件,运行的格式是java 字节码文件名(不需要.class后缀),比方java HelloWorld
Q:怎样对待Java是一门半编译半解释型的语言?
A:半编译半解释指的是JVM在解释实行既有解释器解释实行,又有JIT编译器编译实行

5.2 Java开辟工具介绍

工欲善其事,必先利其器
虽然JDK提供了开辟Java步伐时所用到的一些工具,比方javac,java,jdb,jconsole等等

但是JDK并没有提供编写Java代码的开辟工具,因此想要在编写Java步伐之前,还需要相识Java开辟工具, 我这里把Java开辟工具分成两类,分别是文本编辑器和IDE
常用的文本编辑器有记事本、Visual Studio Code、Sublime Text
Visual Studio Code

Sublime Text

Visual Studio Code和Sublime Text都是高级的文本编辑器,而且是跨平台的(Windows,macOS,Linux),建议初学Java的朋侪可以利用它们来开辟Java步伐,由于相比IDE而言更加轻量级,对初学者更加轻易上手**。**
常用的Java IDE(Integrated Development Environment) 有IntelliJ IDEA和Eclipse
IntelliJ IDEA

Eclipse

IDEA和Eclipse都是IDE,I****DE集成项目开辟中常用的功能,包罗编辑器、编译工具、反编译工具、测试工具、性能分析工具、部署工具等等,因此可以大大提高开辟效率
目前大部分互联网公司基本普遍都会利用IntelliJ IDEA开辟Java项目,因此我们后期会全程利用IntelliJ IDEA。
5.3 第一个Java步伐开辟

在学习任何一门编程语言时编写的第一个步伐通常都称为HelloWorld
如果你可以大概编写并且运行HelloWorld,那么意味着已经迈入编程的大门
本次我们利用比较原始的开辟方式:也就是基于文本编辑+macOS终端(iTerm)+JDK提供的开辟工具(javac和java)来开辟人生的第一个Java步伐,这种方式虽然和利用IDE开辟相比效率比较低,但是可以大概让初学者更加直观地明确Java步伐的开辟和运行流程****。

  • 检查Java开辟情况
在开辟第一个Java步伐之前先要检查Java开辟情况:即安装、配置JDK
目前本机已经安装四个差别版本的Java,分别是Java8、Java11、Java17、Java21,它们都是官方长期支持版

那么到底是利用哪个版本,是由PATH情况变量决定的
从.zshrc文件中配置得知目前利用的Java版本为Java21

也可以在终端上利用Java提供的javac、java命令,这两个命令提供了-version选项检察版本信息


  • javac -version检察Java编译器的版本信息
  • java -version检察Java解释器的版本信息


  • 新建code文件夹
在/Users/Documents目次下,触控板右键新建文件夹


将文件夹的名称由默认的未命名文件夹改为code,用于存放Java源文件


code文件夹重命名乐成


  • 新建源文件
起首在code目次下右键 新建文件>Text
不过macOS Sonoma右键没有新建文件菜单,需要利用第三方软件实现,比方右键助手专业版

在安装完右键助手专业版

需要启用右键菜单

右键助手安装、配置完成后,就可以在code目次下选择右键新建文件>Text

授权/Users/liuguanglei目次

如许就会创建一个文本文件,文件名是未命名.txt

将默认的未命名.txt重命名成HelloWorld.java


访达还会提示 **你确定要将扩展名“.txt”更改为“.java”吗?,**点击利用.java

如许HelloWorld.java源文件就创建乐成


  • 打开源文件
选中HelloWorld.java,右键 打开方式>文本编辑.app打开

文本编辑打开HelloWorld.java源文件,打开后就可以开始编写Java代码


  • 编辑源文件
在HelloWorld.java源文件中编写HelloWorld
  1. public class HelloWorld{
  2.         public static void main(String[]args){
  3.                 System.out.println("Hello World");
  4.         }
  5. }
复制代码

在利用文本编辑编写Java代码时


  • 如果以为代码字体太小不符合,可以利用Command +和Command - 临时调整字体大小
  • 代码需要进行适当的换行、缩进
  • 代码中遇到了符号,比如说圆括号(()),方括号([]),大括号({})都需要成对编写,然后再往内里编写内容,而且这些符号都是英文的,由于Java是美国人发明的,不支持中文。
编写完成后按command+s保存源文件


  • 编译源文件
开启macOS终端(内置终端或者iTerm),由于javac和java只能在终端上利用

切换到HelloWorld.java源文件所在的目次(/Users/liuguanglei/Documents/code)

编译源文件HelloWorld.java,如果没有语法错误编译乐成之后会生成HelloWorld.class文件


  • 解释运行字节码文件
在终端上输入java HelloWorld后回车解释实行HelloWorld.class字节码文件
如果没有任何运行时错误就会看到Windows终端打印输出HelloWorld并换行

5.4 第一个Java步伐详解

  1. public class HelloWorld{
  2.         public static void main(String[]args){
  3.                 System.out.println("Hello World");
  4.         }
  5. }
复制代码

  • public是一个关键字,表示权限最大的访问权限修饰符,称为公共的,后期在学习面向对象的时间还会学习private,默认的,protected,这里只需要记着如果类名利用public 修饰,那么public修饰的类名必须和文件名保持一致
  • class是一个关键字,用于定义类,比方class Welcome{} 表示定义一个类,类名是Welcome,{}表示类的开始范围和竣事范围,Java是面向对象的编程语言,类是Java步伐的基本单元。
  • 在一个源文件中可以定义多个class,但是只能有一个类被public修饰。编译器在编译后会生成和源文件中class数目一致的字节码文件,字节码文件名和类名雷同。

  1.    public class MyWorld{
  2.             public static void main(String[]args){
  3.                     System.out.println("This is my world");
  4.             }
  5.     }
  6.    
  7.     class Chinese{
  8.    
  9.     }
  10.    
  11.     class American{
  12.    
  13.     }
复制代码
编译和运行MyWorld.java步伐后会生成3个字节码文件,分别是MyWorld.class、Chinese.class和American.class,由于MyWorld.java中定义了3个类


  • public static void main(String[] args){} 格式是固定的,表示main方法,main方法是Java步伐的入口,Java步伐是从main方法的第一行开始实行的,该方法被JVM调用,如果你的Java步伐想要独立运行,那么必须要固定格式的main方法
  • System.out.println(“Hello World”); 的作用就是在终端上打印输出字符串Hello World 然后换行,如果想输出其他内容只需要替换""中的HelloWorld即可,;表示语句的竣事,Java中的每条语句(比方System.out.println()就是打印输出语句)都需要利用;竣事,否则编译错误。如果打印输出后不想换行可以利用System.out.print();语句
  1. public class PrintData{
  2.         public static void main(String[]args){
  3.                 System.out.println("HelloWorld");
  4.                 System.out.print("跟光磊学Java");
  5.                 System.out.print("从小白");
  6.                 System.out.print("到架构师");
  7.         }
  8. }
复制代码
编译和运行PrintData.java步伐

需要留意的是最后一句打印输出语句末尾添加了%
这是由于如果最后输出不是换行,zsh 就会在最后帮你加一个%,然后强制换行。
如许的利益是下一个命令总是从头开始的,不轻易杂乱。
步伐中**System.out.println()**语句打印的内容包含了中文,但是macOS系统无论是文件还是终端默认都是UTF-8编码,不管你利用的是Java8、Java17还是Java21,都不会有中文乱码的问题存在
5.5 Java跨平台原理

在搭建Windows版和macOS版Java开辟情况时都需要根据本身所利用操作系统的版本来选择安装、配置对应版本的JDK

而JDK包含JRE和开辟工具,JRE包含JVM和核心类库,Oracle公司需要根据差别的操作系统开辟差别版本的JDK

Java跨平台指的是在Windows系统上开辟的Java步伐编译之后的字节码文件可以在恣意安装了JDK的其他操作系统上运行

Java跨平台的原理就是Java步伐不是直接在操作系统上运行的,而是在JVM(Java Virtual Machine)上运行。JVM屏蔽底层操作系统差异性,但是JVM本身不是跨平台。

HelloWorld步伐演示Java跨平台

  • 检查Windows和macOS的Java情况
检查Windows Java情况

检查macOS Java情况


  • 在Windows上编写HelloWorld ​

  1. public class HelloWorld{
  2.         public static void main(String[]args){
  3.                 System.out.println("跟光磊学Java从小白到架构师");
  4.         }
  5. }
复制代码

  • 在Windows终端上利用javac编译HelloWorld.java源文件,生成HelloWorld.class字节码文件


  • 在macOS iTerm终端上利用java解释运行Windows编译生成的HelloWorld字节码文件

5.6 Java21新特性:未命名类和实例main方法

Java21新增预览版的特性:未命名类和实例main方法

此特性的利益就是可以让初学者在不需要相识步伐布局和修饰符的前提下,更快更轻易地写出第一个HelloWorld步伐
Java21之前的HelloWorld

  1. public class HelloWorld{
  2.         public static void main(String[]args){
  3.                 System.out.println("跟光磊学Java从小白到架构师");
  4.         }
  5. }
复制代码
Java21之后的HelloWorld

  1.    void main(){
  2.                     System.out.println("跟光磊学Java从小白到架构师");
  3.     }
复制代码
相比之下Java21之后的HelloWorld更加简洁,如许可以减少错误的出现


  • 编译时需要利用javac --enable-preview --source 21 源文件名.java,比方javac --enable-preview --source 21 HelloWorld.java
  • 解释运行时利用java --enable-preview 字节码文件名,比方java --enable-preview HelloWorld

在利用Java21新特性未命名类和实例main方法编写完源文件后,也可以直接利用java --enable-preview --souce 21 源文件.java,比方java --enable-preview --souce 21 HelloWorld.java 来编译运行HelloWorld。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

前进之路

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表