Java,  Mac

如何在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 % 

留言