如何在Mac mini M4上安装配置并灵活切换Oracle jdk
一 背景
本文档用于记录如何在Mac mini M4机器上安装配置Oracle官方提供的jdk。由于我的机器上之前已经安装并且配置过多个版本的Oracle jdk,这里手工一步一步安装配置Oracle最新发布的jdk 25版本,用于文档记录。
二 下载Oracle jdk
到Oracle官网下载最新版本的jdk,选择对应操作系统平台的CPU型号,由于我的是Mac mini M4,所以,我下载的是ARM64 Compressed Archive,其下载地址为:
https://download.oracle.com/java/25/latest/jdk-25_macos-aarch64_bin.tar.gz
下载之后:
huangwei@huangweis-Mac-mini Downloads % ls -lrt jdk-25_macos-aarch64_bin.tar.gz -rw-r--r--@ 1 huangwei staff 207923647 Sep 26 12:58 jdk-25_macos-aarch64_bin.tar.gz huangwei@huangweis-Mac-mini Downloads % pwd /Users/huangwei/Downloads huangwei@huangweis-Mac-mini Downloads % ls -lrt jdk-25_macos-aarch64_bin.tar.gz -rw-r--r--@ 1 huangwei staff 207923647 Sep 26 12:58 jdk-25_macos-aarch64_bin.tar.gz huangwei@huangweis-Mac-mini Downloads %
三 安装配置
我这里,把jdk安装配置在/Users/huangwei/Software路径下,便于管理。
命令行执行解压安装:
huangwei@huangweis-Mac-mini Downloads % tar -xzvf jdk-25_macos-aarch64_bin.tar.gz -C /Users/huangwei/Software x ./ x ./jdk-25.jdk/ x ./jdk-25.jdk/Contents/ x ./jdk-25.jdk/Contents/CodeResources x ./jdk-25.jdk/Contents/_CodeSignature/ x ./jdk-25.jdk/Contents/Home/ x ./jdk-25.jdk/Contents/MacOS/ ... x ./jdk-25.jdk/Contents/Home/man/man1/jarsigner.1 x ./jdk-25.jdk/Contents/_CodeSignature/CodeResources huangwei@huangweis-Mac-mini Downloads %
确认解压安装结果:
huangwei@huangweis-Mac-mini Downloads % ll /Users/huangwei/Software total 16 drwxr-xr-x 9 huangwei staff 288 Sep 26 17:25 . drwxr-x---+ 59 huangwei staff 1888 Sep 26 12:45 .. -rw-r--r--@ 1 huangwei staff 6148 Sep 25 17:30 .DS_Store drwxr-xr-x@ 9 huangwei staff 288 Aug 14 2024 apache-maven-3.9.9 drwxr-xr-x@ 3 huangwei staff 96 Dec 3 2024 jdk-17.0.14.jdk drwxr-xr-x@ 3 huangwei staff 96 Nov 29 2024 jdk-23.0.2.jdk drwxr-xr-x 3 huangwei staff 96 Aug 15 07:07 jdk-25.jdk drwxr-xr-x@ 4 huangwei staff 128 Feb 10 2025 jdk1.8.0_441.jdk drwxrwxr-x@ 28 huangwei staff 896 Aug 29 10:41 nvm-0.40.3 huangwei@huangweis-Mac-mini Downloads %
看到,在/Users/huangwei/Software 路径下,生成了jdk-25.jdk,该路径下的其它版本的jdk是之前安装配置的。
四 验证jdk安装成功可用
huangwei@huangweis-Mac-mini Downloads % /Users/huangwei/Software/jdk-25.jdk/Contents/Home/bin/java -version java version "25" 2025-09-16 LTS Java(TM) SE Runtime Environment (build 25+37-LTS-3491) Java HotSpot(TM) 64-Bit Server VM (build 25+37-LTS-3491, mixed mode, sharing) huangwei@huangweis-Mac-mini Downloads %
通过绝对路径可以使用最新版本的jdk。
五 配置环境可以灵活切换jdk版本
由于Mac mini M4默认的shell是zsh,我这里创建一个配置文件~/.zsh_rc,用于配置Oracle jdk不同版本灵活切换,配置之后的文件如下:
huangwei@huangweis-Mac-mini Downloads % cat ~/.zsh_rc export JAVA_8_HOME=/Users/huangwei/Software/jdk1.8.0_441.jdk/Contents/Home export JAVA_17_HOME=/Users/huangwei/Software/jdk-17.0.14.jdk/Contents/Home export JAVA_23_HOME=/Users/huangwei/Software/jdk-23.0.2.jdk/Contents/Home export JAVA_25_HOME=/Users/huangwei/Software/jdk-25.jdk/Contents/Home export M2_HOME=/Users/huangwei/Software/apache-maven-3.9.9 #修改jdk版本为17的命令:source ~/.zsh_rc; jdk17; # 默认 JDK 版本 export JAVA_HOME=$JAVA_8_HOME export PATH=$JAVA_HOME/bin:$M2_HOME/bin:$PATH # 切换 JDK 版本的函数 jdk8() { export JAVA_HOME=$JAVA_8_HOME export PATH=$JAVA_HOME/bin:$PATH echo "Switched to JDK 8" } jdk17() { export JAVA_HOME=$JAVA_17_HOME export PATH=$JAVA_HOME/bin:$PATH echo "Switched to JDK 17" } jdk23() { export JAVA_HOME=$JAVA_23_HOME export PATH=$JAVA_HOME/bin:$PATH echo "Switched to JDK 23" } jdk25() { export JAVA_HOME=$JAVA_25_HOME export PATH=$JAVA_HOME/bin:$PATH echo "Switched to JDK 25" } #2025.02.27 alias ll='ls -al' #source ~/.bash_profile huangwei@huangweis-Mac-mini Downloads %
如何灵活切换jdk版本:
huangwei@huangweis-Mac-mini Downloads % source ~/.zsh_rc huangwei@huangweis-Mac-mini Downloads % java -version java version "1.8.0_441" Java(TM) SE Runtime Environment (build 1.8.0_441-b07) Java HotSpot(TM) 64-Bit Server VM (build 25.441-b07, mixed mode) huangwei@huangweis-Mac-mini Downloads % which java /Users/huangwei/Software/jdk1.8.0_441.jdk/Contents/Home/bin/java huangwei@huangweis-Mac-mini Downloads % jdk17 Switched to JDK 17 huangwei@huangweis-Mac-mini Downloads % java -version java version "17.0.14" 2025-01-21 LTS Java(TM) SE Runtime Environment (build 17.0.14+8-LTS-191) Java HotSpot(TM) 64-Bit Server VM (build 17.0.14+8-LTS-191, mixed mode, sharing) huangwei@huangweis-Mac-mini Downloads % jdk23 Switched to JDK 23 huangwei@huangweis-Mac-mini Downloads % java -version java version "23.0.2" 2025-01-21 Java(TM) SE Runtime Environment (build 23.0.2+7-58) Java HotSpot(TM) 64-Bit Server VM (build 23.0.2+7-58, mixed mode, sharing) huangwei@huangweis-Mac-mini Downloads % jdk25 Switched to JDK 25 huangwei@huangweis-Mac-mini Downloads % java -version java version "25" 2025-09-16 LTS Java(TM) SE Runtime Environment (build 25+37-LTS-3491) Java HotSpot(TM) 64-Bit Server VM (build 25+37-LTS-3491, mixed mode, sharing) huangwei@huangweis-Mac-mini Downloads % which java /Users/huangwei/Software/jdk-25.jdk/Contents/Home/bin/java huangwei@huangweis-Mac-mini Downloads %