本文介绍在mac下安装多个版本的jdk,并动态切换使用,说一下当前需要配置的环境,m1芯片,arm架构的mac,安装jdk版本为oracle jdk8和azul的openjdk8。
一、oraclejdk8下载
oracle官方提供arm架构的jdk,因此只需要在官方下载即可。
下载完成之后,双击dmg文件,一直点击下一步,可以了,等待安装完成即可。
二、azulopenjdk8下载
下载地址:
Java 8, 11, 17, 21, 22 Download for Linux, Windows and macOS
在下方选择jdk版本:
下载完成后,也是dmg文件,一直下一步就可以了。
三、配置环境变量
默认安装的jdk都会在/Library/Java/JavaVirtualMachines目录下,此时在这个目录下就可以看到刚刚安装的所有jdk。
vim ~/.bash_profile
如果原本没有.bash_profile文件,在运行vim ~/.bash_profile命令时会创建该文件。
# Java config
export OPENJDK_8_HOME="/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home"
export JDK_8_HOME="/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home"
# config alias
alias openjdk8="export JAVA_HOME=$OPENJDK_8_HOME"
alias jdk8="export JAVA_HOME=$JDK_8_HOME"
# config default jdk
export JAVA_HOME=$OPENJDK_8_HOME
export PATH="$JAVA_HOME:$PATH"
保存后退出
source ~/.bash_profile
此时在控制台输入java -version可以看到配置的默认jdk版本已经生效。
在控制台直接输入配置的别名:jdk8 再次查看变可以发现已经切换成功
如果还需要安装其他版本的jdk,以此内推,安装后配置环境变量就行了,至此jdk配置完成。
四、JDK版本管理工具
其实也有很多其他的jdk管理工具,类似于nvm管理node版本,很方便,这里只做简单介绍,详情参考对应github。
- SDKMAN!: SDKMAN! 是一个用于管理 Java、Groovy、Scala 等 JVM 相关工具的工具。它允许您安装、切换和管理不同版本的 JDK,以及其他 JVM 相关工具。
- jEnv: jEnv 是一个专门用于管理 Java 版本的轻量级工具,类似于 nvm。它允许您在不同的 shell 会话中切换全局和项目级别的 JDK 版本。
- Jabba: Jabba 是一个命令行工具,类似于 nvm,专门用于管理多个 JVM 版本。它支持不同的 JVM 实现,例如 Oracle JDK、OpenJDK 等。
- asdf: asdf 是一个通用版本管理工具,支持多种编程语言和工具。虽然它不是专门用于 Java,但也可以用于管理 JDK 版本。
- jvm-switcher: jvm-switcher 是另一个 Java 版本管理工具,它允许您切换全局和项目级别的 JDK 版本。