Java语言核心技术

苹果笔记本能编java吗 苹果笔记本可以java开发吗_环境变量

 

 

 

 

日常办公和软件开发除了可以使用Windows系统以外,还可以使用macOS系统,至于具体使用什么系统取决于你入职公司之后公司给你发的什么电脑,如果是MacBookPro那么就使用macOS开发项目,因此现在我们开始在macOS系统下搭建Java17的开发环境,如果你的Mac电脑使用的Apple CPU(例如M1,M1 Pro,M1 Ultra,M2),那么按照如下方法下载、安装和配置Java17的开发环境

1. 基于ARM 64-bit macOS版Java17 下载

  1. 访问Oracle官网,其访问地址是https://www.oracle.com/java/
  2. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_02

  3. 点击右上角的Download Java跳转Java的下载页面
  4. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_环境变量_03


  5. Java的下载地址 https://www.oracle.com/java/technologies/downloads/
  6. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_苹果笔记本能编java吗_04


  7. 目前Oracle官方提供的最新Java版本\JDK版本是Java19和Java17,但是最新的LTS版本是Java17
  8. 这次我们要下载的是Java17,因此点击下载页面的Java17切换到Java17
  9. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_Java_05


  10. 目前Java17支持三个操作系统
  • Linux
  • macOS
  • Windows
    3. 选择macOS版Arm 64 DMG Installer Java17
    大家在下载Java17的时候需要根据自己所使用操作系统的版本以及CPU选择对应的版本
    Java11以后同时支持Mac电脑的Intel CPU和Apple 芯片

 

苹果笔记本能编java吗 苹果笔记本可以java开发吗_苹果笔记本能编java吗_06

选择macOS版Arm 64 DMG Installer

 

  • x64 DMG Installer 表示Intel x86 64位安装程序,如果你的Mac电脑是Intel CPU那么选择这个版本
  • Arm 64 DMG Installer 表示ARM 64位安装程序,如果你的Mac电脑是Apple芯片(例如M1,M1 Pro,M1 Max,M1 Ultra,M2等等)那么选择这个版本

点击左上角的苹果菜单,然后点击关于本机,可以查看当前Mac电脑的硬键配置信息

由于我的Mac电脑是M1 Max芯片,因此选择x64 DMG Installer

苹果笔记本能编java吗 苹果笔记本可以java开发吗_苹果笔记本能编java吗_07

  1. 下载macOS版Arm 64 DMG Installer Java17

点击Java17下载链接后

苹果笔记本能编java吗 苹果笔记本可以java开发吗_苹果笔记本能编java吗_08

浏览器自动开始下载Java17

苹果笔记本能编java吗 苹果笔记本可以java开发吗_环境变量_09


和Java8相比下载时不需要同意许可协议,也不需要注册和登录Oracle账号

  1. 下载成功
    当Java17下载成功以后,会在访达的下载目录下看到jdk-17_macos-aarch64_bin.dmg,其中aarch64表示ARM架构64-bit


2. 基于ARM 64-bit macOS版Java17 安装
  1. 双击下载目录的jdk-17_macos-aarch64_bin.dmg
  2. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_环境变量_10

  3. 双击 JDK 17.0.5.pkg
  4. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_苹果笔记本能编java吗_11

  5. 点击继续
  6. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_苹果笔记本能编java吗_12

  7. 点击安装
  8. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_Java_13

点击安装后安装器会提示 安装器正在尝试新软件,使用触控ID或输入密码以允许此次操作

为了方便这里建议使用触控ID即可

苹果笔记本能编java吗 苹果笔记本可以java开发吗_Java_14

5.安装中

安装过程大概就2-5秒钟左右

苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_15

  1. 安装完成
  2. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_环境变量_16

  • 点击Java SE文档 访问Java17的官方文档 https://docs.oracle.com/en/java/javase/17/index.html
  • 苹果笔记本能编java吗 苹果笔记本可以java开发吗_Java_17

  • 点击关闭完成Java17的安装,安装器会提示 你要将JDK 17.0.5 安装器移到废纸篓吗? 建议保留,因为未来可能因为某个原因会重装
  • 苹果笔记本能编java吗 苹果笔记本可以java开发吗_环境变量_18

  1. 推出桌面的JDK 17.0.5
  2. 选中桌面的JDK 17.0.5,然后右键选择推出 JDK 17.0.5。当然也可以使用快捷键Command+E推出
  3. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_Java_19


3. 基于ARM 64-bit macOS版Java17 配置


3.1 基于ARM 64-bit macOS版Java17 配置说明

当基于ARM架构 macOS版Java17安装完成以后,你会发现即使没有配置JAVA_HOME环境变量,在终端上运行mvn --version时也不会像Windows那样提示需要配置JAVA_HOME

苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_20

而且即使没有配置PATH环境变量,在终端的任意路径下也可以运行javac -version和java -version,这样就意味着在终端的任意路径下使用javac和java

苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_21

这样是不是意味着不用配置Java17的JAVA_HOME和PATH环境变量呢?
其实不然,因为后期我们会使用多个不同版本的Java,例如在开发Java项目时使用的Java8,而学习Java语言时为了使用高版本的新特性可能会使用Java11甚至Java17,这里就会有在终端上切换Java版本的需求,因此我们依然要配置Java17的JAVA_HOME和PATH环境变量

不过和Windows上Java17的配置方式不同,macOS版Java17的配置方式需要通过在终端上执行一些命令进行,如果你熟悉Linux命令那么上手会比较容易。


3.2 基于ARM 64-bit macOS版Java17 配置JAVA_HOME环境变量

JAVA_HOME其实指的就是Java的家目录,默认情况下Java17的家目录对应的路径是 /Library/Java/JavaVirtualMachines/jdk-17.0.5.jdk/Contents/Home

苹果笔记本能编java吗 苹果笔记本可以java开发吗_Java_22

配置JAVA_HOME环境变量的目的就是为了给Java17的PATH环境变量使用的

  1. 启动终端
  2. Mac内置终端程序,你可以在启动台的其他中找到它
  3. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_环境变量_23

 


苹果笔记本能编java吗 苹果笔记本可以java开发吗_苹果笔记本能编java吗_24


内置的终端



 

不过我使用的是第三方终端iTerm,需要自己手动安装,可以使用Command+空格打开聚焦搜索,然后搜索iTerm回车后打开

苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_25


苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_26

  1. 查看系统所使用的Shell类型
  2. 不同类型的Shell所使用的配置文件不同,例如zsh使用的.zshrc,而bash使用的.bash_profile
  3. 使用echo $SHELL 命令可以查看当前使用的Shell类型,这里默认使用的是zsh
  4. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_Java_27

  5. 如果想要使用bash,那么可以使用chsh -s /bin/bash命令切换到bash,不过切换以后需要重新开启新的窗口,然后使用echo $SHELL查看Shell类型
  6. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_28

  7. 创建配置文件
    如果你是使用的bash ,那么在用户的家目录下使用touch .bash_profile 创建.bash_profile文件
    如果你是使用的zsh,那么在用户的家目录下使用touch .zshrc创建.zshrc文件
    Mac的家目录就是/Users/liuguanglei,其中liuguanglei表示用户名,每个系统的用户名可能不相同。打开终端以后默认的路径就是在家目录下

我这里使用默认的shell是zsh,因此创建.zshrc文件

苹果笔记本能编java吗 苹果笔记本可以java开发吗_Java_29

文件创建成功后可以使用 ls -al查看文件

苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_30

  1. 在配置文件中添加Java17的JAVA_HOME环境变量

首先使用vim .zshrc 打开文件,

苹果笔记本能编java吗 苹果笔记本可以java开发吗_Java_31


此时处于命令模式,无法添加内容

苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_32


需要按i键进入编辑模式

苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_33


然后添加如下配置


# 配置Java17的JAVA_HOME
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.0.5.jdk/Contents/Home


添加完成以后按esc退出编辑模式

苹果笔记本能编java吗 苹果笔记本可以java开发吗_苹果笔记本能编java吗_34

退出了编辑模式后

苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_35

然后按:wq 保存并退vim编辑器

苹果笔记本能编java吗 苹果笔记本可以java开发吗_苹果笔记本能编java吗_36

  1. 重新加载配置文件
  2. 在终端上输入source .zshrc让添加的配置生效
  3. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_37

  4. 验证配置
  5. 在终端上输入echo $JAVA_HOME 命令看能否输出Java17的JAVA_HOME对应的路径
  6. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_环境变量_38


3.3 基于ARM 64-bit macOS版Java17 配置PATH环境变量


3.3.1 PATH环境变量的介绍

PATH环境变量的本质就是一系列的路径,例如/bin,/usr/bin,/usr/local/bin,多个路径之间使用冒号(:)隔开,Mac下可以在终端上使用echo $PATH命令查看当前系统的PATH环境变量

苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_39


PATH环境变量的作用就是在终端上执行命令时,系统会从PATH环境变量的路径查找命令对应的可执行程序,然后执行该程序

例如date 可以查看系统日期,而 where date 可以查看到date命令的路径,正因为/bin在PATH环境变量中,因此在终端输入date实际是运行的是/bin目录下的date程序

苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_40


如果输入一个不存在的命令,那么系统会提示command not found

苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_41


3.3.2 基于ARM 64-bit macOS版Java8配置PATH环境变量

  1. 启动终端
  2. Mac内置终端程序,你可以在启动台的其他中找到它
  3. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_Java_42

 


苹果笔记本能编java吗 苹果笔记本可以java开发吗_苹果笔记本能编java吗_43


内置的终端



 

不过我使用的是第三方终端iTerm,需要自己手动安装,可以使用Command+空格打开聚焦搜索,然后搜索iTerm回车后打开

苹果笔记本能编java吗 苹果笔记本可以java开发吗_环境变量_44


苹果笔记本能编java吗 苹果笔记本可以java开发吗_Java_45

  1. 打开配置文件
  2. 之前在配置JAVA_HOME环境变量创建过.zshrc文件,因此使用vim .zshrc命令打开即可
  3. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_Java_46

打开文件后可以查看到Java17的JAVA_HOME环境变量配置

苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_47

  1. 编辑配置文件
  2. vim打开文件后只能查看文件内容而不能编辑,因此按i键进入编辑模式
  3. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_环境变量_48

然后在文件末尾添加如下内容


#配置Java17的PATH环境变量
export PATH=$PATH:$JAVA_HOME/bin


 


苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_49


配置Java17的PATH环境变量



 

  1. 保存配置并退出vim编辑器
  2. 文件编辑完成后按esc退出编辑模式
  3. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_环境变量_50

退出了编辑模式以后

苹果笔记本能编java吗 苹果笔记本可以java开发吗_环境变量_51

然后按:wq保存并退出vim编辑器

苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_52

  1. 重新加载配置文件
  2. 在终端上输入source .zshrc让添加的配置生效
  3. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_Java_53

  4. 验证配置
  5. 在终端上输入echo $PATH命令查看系统PATH环境变量,确认是否已经添加Java17的PATH环境变量
  6. 苹果笔记本能编java吗 苹果笔记本可以java开发吗_环境变量_54


4. 基于ARM 64-bit macOS版Java17 卸载

未来的某个时间可能你不再需要使用Java17时,就可以将其卸载,卸载Java17时需要删除Java17的安装目录和配置文件(例如.zshrc)


/Library/Java/JavaVirtualMachines/jdk-17.0.5.jdk # Java17的安装目录


删除Java8的安装目录时需要使用sudo rm -rf 命令来完成,首次执行sudo rm -rf前需要输入用户的开机密码


sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-17.0.5.jdk


 


苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_55


删除Java17的安装目录



 

然后删除配置文件,例如.zshrc,此时使用rm .zshrc命令删除即可

苹果笔记本能编java吗 苹果笔记本可以java开发吗_Java_56

删除.zshrc文件后重新开个终端窗口来验证JAVA_HOME和PATH环境变量是否已经删除

苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_57

最后在终端上输入javac -version 和java -version,如果提示The operation couldn’t be completed. Unable to locate a Java Runtime. 表示卸载成功

苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_58


5. Java8和Java17的切换

目前在Mac电脑上已经安装了Java8和Java17

苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_59

而且在配置文件.zshrc中已经配置过Java17的JAVA_HOME环境变量和PATH环境变量

苹果笔记本能编java吗 苹果笔记本可以java开发吗_Java_60

也在终端上验证过Java17的环境

苹果笔记本能编java吗 苹果笔记本可以java开发吗_环境变量_61

需求:假设目前项目部署要求使用Java8,如何从Java17切换到Java8?

实现方式其实很简单,只需要将.zshrc文件中的JAVA_HOME改成Java8的家目录即可,修改的过程和之前配置JAVA_HOME环境变量类似

苹果笔记本能编java吗 苹果笔记本可以java开发吗_JAVA_62


#如果要切换到Java17,那么启用这个配置
#export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.0.5.jdk/Contents/Hom
#如果要切换到Java8,那么启用这个配置
export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
#配置Java17的PATH环境变量
export PATH=$PATH:$JAVA_HOME/bin


修改完成以后需要重新开启新的终端窗口来验证Java8的环境

苹果笔记本能编java吗 苹果笔记本可以java开发吗_Java_63

如果想要切回Java17怎么做呢?同样的只需要将.zshrc文件中的JAVA_HOME改成Java17的家目录即可。

苹果笔记本能编java吗 苹果笔记本可以java开发吗_环境变量_64


#如果要切换到Java17,那么启用这个配置
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.0.5.jdk/Contents/Hom
#如果要切换到Java8,那么启用这个配置
#export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
#配置Java17的PATH环境变量
export PATH=$PATH:$JAVA_HOME/bin


修改完成以后需要重新开启新的终端窗口来验证Java17的环境

苹果笔记本能编java吗 苹果笔记本可以java开发吗_苹果笔记本能编java吗_65