Mac下Flutter未使用JAVA_HOME指定JDK版本的问题求助
解决Flutter在Mac上强制使用指定JDK版本的问题
问题核心:Flutter默认会优先使用Android Studio自带的捆绑JDK(JetBrains Runtime,对应JDK17),即使系统设置了JAVA_HOME指向JDK15,也会被覆盖。以下是针对性解决步骤:
1. 修改Android Studio的全局JDK配置
Flutter依赖Android Studio的JDK设置,先让AS切换到系统安装的JDK15:
- 打开Android Studio
- 顶部菜单选择
File→Project Structure(或快捷键Cmd+;) - 切换到
SDK Location标签页 - 在
JDK location栏,点击路径选择器,找到JDK15的安装路径(可通过执行/usr/libexec/java_home -v 15获取准确路径,一般为/Library/Java/JavaVirtualMachines/jdk-15.jdk/Contents/Home) - 点击
Apply→OK保存配置,重启Android Studio
2. 为Flutter项目单独指定JDK(可选但更保险)
在项目Gradle配置里强制指定JDK路径,避免受全局配置波动影响:
- 打开Flutter项目的
android/gradle.properties文件 - 添加以下配置(替换为你的JDK15实际路径):
org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk-15.jdk/Contents/Home
- 保存文件后,执行
flutter clean清除旧编译缓存
3. 验证配置生效
- 重启终端,执行
flutter doctor --verbose,检查输出中的Java version是否显示为JDK15版本 - 尝试运行Flutter项目,查看Gradle兼容提示是否消失
额外说明
- Android Studio自带的JDK(JetBrains Runtime)位于
/Applications/Android Studio.app/Contents/jbr/Contents/Home,无需删除,只要修改配置让Flutter不使用它即可 - 确保系统环境变量配置正确:在
~/.zshrc或~/.bash_profile中设置:
export JAVA_HOME=$(/usr/libexec/java_home -v 15) export PATH=$JAVA_HOME/bin:$PATH
执行source ~/.zshrc(或对应shell的配置文件)让环境变量生效
内容的提问来源于stack exchange,提问作者Janis Wehen
相关产品推荐
相关产品推荐

