Java语言核心技术
日常办公和软件开发除了可以使用Windows系统以外,还可以使用macOS系统,至于具体使用什么系统取决于你入职公司之后公司给你发的什么电脑,如果是MacBookPro那么就使用macOS开发项目,因此现在我们开始在macOS系统下搭建Java17的开发环境,如果你的Mac电脑使用的Apple CPU(例如M1,M1 Pro,M1 Ultra,M2),那么按照如下方法下载、安装和配置Java17的开发环境。
1. 基于ARM 64-bit macOS版Java17 下载
-
访问Oracle官网,其访问地址是https://www.oracle.com/java/
-
点击右上角的Download Java跳转Java的下载页面
Java的下载地址 https://www.oracle.com/java/technologies/downloads/
目前Oracle官方提供的最新Java版本\JDK版本是Java19和Java17,但是最新的LTS版本是Java17
这次我们要下载的是Java17,因此点击下载页面的Java17切换到Java17
目前Java17支持三个操作系统
- Linux
- macOS
- Windows
3. 选择macOS版Arm 64 DMG Installer Java17
大家在下载Java17的时候需要根据自己所使用操作系统的版本以及CPU选择对应的版本
Java11以后同时支持Mac电脑的Intel CPU和Apple 芯片
选择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
- 下载macOS版Arm 64 DMG Installer Java17
点击Java17下载链接后
浏览器自动开始下载Java17
和Java8相比下载时不需要同意许可协议,也不需要注册和登录Oracle账号
- 下载成功
当Java17下载成功以后,会在访达的下载目录下看到jdk-17_macos-aarch64_bin.dmg,其中aarch64表示ARM架构64-bit
2. 基于ARM 64-bit macOS版Java17 安装
-
双击下载目录的jdk-17_macos-aarch64_bin.dmg
-
双击 JDK 17.0.5.pkg
-
点击继续
-
点击安装
点击安装后安装器会提示 安装器正在尝试新软件,使用触控ID或输入密码以允许此次操作
为了方便这里建议使用触控ID即可
5.安装中
安装过程大概就2-5秒钟左右
- 安装完成
-
点击Java SE文档 访问Java17的官方文档 https://docs.oracle.com/en/java/javase/17/index.html
-
点击关闭完成Java17的安装,安装器会提示 你要将JDK 17.0.5 安装器移到废纸篓吗? 建议保留,因为未来可能因为某个原因会重装
- 推出桌面的JDK 17.0.5
选中桌面的JDK 17.0.5,然后右键选择推出 JDK 17.0.5。当然也可以使用快捷键Command+E推出
3. 基于ARM 64-bit macOS版Java17 配置
3.1 基于ARM 64-bit macOS版Java17 配置说明
当基于ARM架构 macOS版Java17安装完成以后,你会发现即使没有配置JAVA_HOME环境变量,在终端上运行mvn --version时也不会像Windows那样提示需要配置JAVA_HOME
而且即使没有配置PATH环境变量,在终端的任意路径下也可以运行javac -version和java -version,这样就意味着在终端的任意路径下使用javac和java
这样是不是意味着不用配置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_HOME环境变量的目的就是为了给Java17的PATH环境变量使用的
- 启动终端
Mac内置终端程序,你可以在启动台的其他中找到它
内置的终端
不过我使用的是第三方终端iTerm,需要自己手动安装,可以使用Command+空格打开聚焦搜索,然后搜索iTerm回车后打开
-
查看系统所使用的Shell类型
不同类型的Shell所使用的配置文件不同,例如zsh使用的.zshrc,而bash使用的.bash_profile
使用echo $SHELL 命令可以查看当前使用的Shell类型,这里默认使用的是zsh
如果想要使用bash,那么可以使用chsh -s /bin/bash命令切换到bash,不过切换以后需要重新开启新的窗口,然后使用echo $SHELL查看Shell类型
-
创建配置文件
如果你是使用的bash ,那么在用户的家目录下使用touch .bash_profile 创建.bash_profile文件
如果你是使用的zsh,那么在用户的家目录下使用touch .zshrc创建.zshrc文件
Mac的家目录就是/Users/liuguanglei,其中liuguanglei表示用户名,每个系统的用户名可能不相同。打开终端以后默认的路径就是在家目录下
我这里使用默认的shell是zsh,因此创建.zshrc文件
文件创建成功后可以使用 ls -al查看文件
- 在配置文件中添加Java17的JAVA_HOME环境变量
首先使用vim .zshrc 打开文件,
此时处于命令模式,无法添加内容
需要按i键进入编辑模式
然后添加如下配置
# 配置Java17的JAVA_HOME
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.0.5.jdk/Contents/Home
添加完成以后按esc退出编辑模式
退出了编辑模式后
然后按:wq 保存并退vim编辑器
-
重新加载配置文件
在终端上输入source .zshrc让添加的配置生效
-
验证配置
在终端上输入echo $JAVA_HOME 命令看能否输出Java17的JAVA_HOME对应的路径
3.3 基于ARM 64-bit macOS版Java17 配置PATH环境变量
3.3.1 PATH环境变量的介绍
PATH环境变量的本质就是一系列的路径,例如/bin,/usr/bin,/usr/local/bin,多个路径之间使用冒号(:)隔开,Mac下可以在终端上使用echo $PATH命令查看当前系统的PATH环境变量
PATH环境变量的作用就是在终端上执行命令时,系统会从PATH环境变量的路径查找命令对应的可执行程序,然后执行该程序
例如date 可以查看系统日期,而 where date 可以查看到date命令的路径,正因为/bin在PATH环境变量中,因此在终端输入date实际是运行的是/bin目录下的date程序
如果输入一个不存在的命令,那么系统会提示command not found
3.3.2 基于ARM 64-bit macOS版Java8配置PATH环境变量
- 启动终端
Mac内置终端程序,你可以在启动台的其他中找到它
内置的终端
不过我使用的是第三方终端iTerm,需要自己手动安装,可以使用Command+空格打开聚焦搜索,然后搜索iTerm回车后打开
- 打开配置文件
之前在配置JAVA_HOME环境变量创建过.zshrc文件,因此使用vim .zshrc命令打开即可
打开文件后可以查看到Java17的JAVA_HOME环境变量配置
- 编辑配置文件
vim打开文件后只能查看文件内容而不能编辑,因此按i键进入编辑模式
然后在文件末尾添加如下内容
#配置Java17的PATH环境变量
export PATH=$PATH:$JAVA_HOME/bin
配置Java17的PATH环境变量
- 保存配置并退出vim编辑器
文件编辑完成后按esc退出编辑模式
退出了编辑模式以后
然后按:wq保存并退出vim编辑器
-
重新加载配置文件
在终端上输入source .zshrc让添加的配置生效
-
验证配置
在终端上输入echo $PATH命令查看系统PATH环境变量,确认是否已经添加Java17的PATH环境变量
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
删除Java17的安装目录
然后删除配置文件,例如.zshrc,此时使用rm .zshrc命令删除即可
删除.zshrc文件后重新开个终端窗口来验证JAVA_HOME和PATH环境变量是否已经删除
最后在终端上输入javac -version 和java -version,如果提示The operation couldn’t be completed. Unable to locate a Java Runtime. 表示卸载成功
5. Java8和Java17的切换
目前在Mac电脑上已经安装了Java8和Java17
而且在配置文件.zshrc中已经配置过Java17的JAVA_HOME环境变量和PATH环境变量
也在终端上验证过Java17的环境
需求:假设目前项目部署要求使用Java8,如何从Java17切换到Java8?
实现方式其实很简单,只需要将.zshrc文件中的JAVA_HOME改成Java8的家目录即可,修改的过程和之前配置JAVA_HOME环境变量类似
#如果要切换到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的环境
如果想要切回Java17怎么做呢?同样的只需要将.zshrc文件中的JAVA_HOME改成Java17的家目录即可。
#如果要切换到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的环境