更新到Eclipse Temurin
最近想更新到OpenJDK 17,发现Homebrew上的AdoptOpenJDK最高只到16,是没有更新吗?了解了一下,原来是AdoptOpenJDK被废弃了,那该怎么办呢?

之前JDK16发布时,朋友圈有一堆同学转发欢呼,而JDK17发布时,却安静了许多。我却挺高兴,毕竟是LTS版本啊,我不禁想问:你们怎么不欢呼了?
这就要提到Eclipse基金会旗下的ADOPTIUM了,它是一个发布二进制安装包的项目,而OpenJDK的发行版也被其囊括在内。AdoptOpenJDK从长远考虑,加入到ADOPTIUM,成为Eclipse Temurin。它被设定为用于苛刻的生产环境,换句话说AdoptOpenJDK改名了,叫做Eclipse Temurin。
接下来,还是基于Homebrew,我们来看看怎样切换到Eclipse Temurin。
已使用AdoptOpenJDK
需要卸载AdoptOpenJDK,卸载的方式是通过brew remove --cask $name
命令来进行卸载,其中$name
是之前安装的AdoptOpenJDK。
以adoptopenjdk8为例,执行命令:brew remove --cask adoptopenjdk8
。
当移除完所有adoptopenjdk${version}
,就可以对AdoptOpenJDK进行untap
了。
执行命令:brew untap AdoptOpenJDK/openjdk
,和AdoptOpenJDK说拜拜。
还在使用OracleJDK
OldTimer,需要向前走了。首先删除/Library/Java/JavaVirtualMachines/
目录下的旧有JDK,顺便清除下面目录中的内容:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin
/Library/PreferencePanes/JavaControlPanel.prefPane
~/Library/Application Support/Oracle/Java
这样基本清理了旧有JDK的内容,开始准备安装OpenJDK。
安装Temurin
还是以二进制包的形式进行安装,所以还是不可避免的使用cask,先tap
上cask-versions,使之能够找到所有的casks。
运行命令:brew tap homebrew/cask-versions
。
然后进行安装,比如要安装OpenJDK8。
运行命令:brew install --cask temurin8
笔者安装了OpenJDK8、11、17三个版本,分别需要运行:
brew install -- cask temurin8
brew install -- cask temurin11
brew install -- cask temurin // 默认是17
安装完成后,在/Library/Java/JavaVirtualMachines/
目录下会出现三个目录:

切换JDK的版本
在~/.bash_profile
中添加以下脚本:
export OPENJDK_JAVA_8_HOME="/Library/Java/JavaVirtualMachines/temurin-8.jdk/Contents/Home"
export OPENJDK_JAVA_11_HOME="/Library/Java/JavaVirtualMachines/temurin-11.jdk/Contents/Home"
export OPENJDK_JAVA_17_HOME="/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home"
alias openjdk8='export JAVA_HOME=$OPENJDK_JAVA_8_HOME'
alias openjdk11='export JAVA_HOME=$OPENJDK_JAVA_11_HOME'
alias openjdk17='export JAVA_HOME=$OPENJDK_JAVA_17_HOME'
export JAVA_HOME=$OPENJDK_JAVA_11_HOME
export PATH="/usr/local/bin:/usr/local/sbin:$PATH”
然后运行:source ~/.bash_profile
使之生效,通过运行openjdk11
,可以将当前JDK切换为OpenJDK11。