如何为Apple Silicon安装Java 19 JVM?解决Homebrew升级版本问题
解决Homebrew下Java 19被升级到20后的Gradle构建问题
问题背景
通过Homebrew安装的Java 19被标记为openjdk而非openjdk@19,后续安装ffmpeg时,Homebrew自动将openjdk升级到Java 20。现在Gradle无法使用Java 20完成构建,尝试安装openjdk@19时,Homebrew提示openjdk 19.0.2已安装,但系统中实际运行的是Java 20,且Oracle官网仅提供Java 17和20的下载。
相关命令输出:
$ brew list ... openjdk openjdk@17 ... $ brew install openjdk@19 Warning: openjdk 19.0.2 is already installed and up-to-date. To reinstall 19.0.2, run: brew reinstall openjdk
解决步骤
1. 确认已安装的OpenJDK版本
先查看Homebrew中已存储的OpenJDK版本记录:
brew list --versions openjdk
如果输出中包含19.0.2,说明该版本仍保存在本地,只是未被激活。
2. 切换到Java 19版本
方法一:使用brew切换版本(适用于支持switch命令的Homebrew版本)
执行命令切换到19.0.2版本:
brew switch openjdk 19.0.2
方法二:手动设置JAVA_HOME(通用方法)
如果switch命令不可用,直接指定Java 19的安装路径:
- 找到Java 19的安装目录,通常为:
/usr/local/Cellar/openjdk/19.0.2/libexec/openjdk.jdk/Contents/Home - 临时生效(当前终端会话):
export JAVA_HOME=/usr/local/Cellar/openjdk/19.0.2/libexec/openjdk.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH - 永久生效(添加到shell配置文件,如
~/.zshrc或~/.bashrc):
在配置文件末尾添加上述两行命令,保存后执行source ~/.zshrc或source ~/.bashrc使变更生效。
3. 验证切换结果
执行以下命令确认当前Java版本:
java -version
如果输出显示openjdk version "19.0.2",说明切换成功,此时Gradle即可正常使用Java 19进行构建。
4. 阻止Homebrew自动升级OpenJDK
为避免后续安装其他软件时再次自动升级Java,可将openjdk固定为当前版本:
brew pin openjdk
若之后需要升级,执行brew unpin openjdk即可解除固定。
内容的提问来源于stack exchange,提问作者Duncan McGregor
相关产品推荐
相关产品推荐

