You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS下Java 1.8缺失tools.jar致旧Flutter项目编译失败求助

解决MacOS下Flutter构建找不到tools.jar的问题

问题描述

在MacOS上执行/usr/libexec/java_home -V | grep jdk显示已安装Java 8,路径为/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home,但Android Studio构建旧Flutter应用时,任务:firebase_messaging:compileDebugJavaWithJavac失败,提示找不到tools.jar,需检查JDK路径是否有效。

相关命令输出:

/usr/libexec/java_home -V | grep jdk

Matching Java Virtual Machines (1):
    1.8.411.09 (arm64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

JDK目录ls -la输出:

total 56
drwxr-xr-x  13 root  wheel   416 13 Mar 08:24 .
drwxr-xr-x  10 root  wheel   320 27 Mag 10:13 ..
-rw-r--r--   1 root  wheel  3245 13 Mar 08:23 COPYRIGHT
-rw-r--r--   1 root  wheel    44 13 Mar 08:23 LICENSE
-rw-r--r--   1 root  wheel    46 13 Mar 08:23 README
-rw-r--r--   1 root  wheel   190 13 Mar 08:23 THIRDPARTYLICENSEREADME-JAVAFX.txt
-rw-r--r--   1 root  wheel   190 13 Mar 08:23 THIRDPARTYLICENSEREADME.txt
-rw-r--r--   1 root  wheel   955 13 Mar 08:23 Welcome.html
drwxr-xr-x  17 root  wheel   544 27 Mag 10:13 bin
drwxr-xr-x   4 root  wheel   128 13 Mar 08:24 legal
drwxr-xr-x  99 root  wheel  3168 13 Mar 08:46 lib
drwxr-xr-x   5 root  wheel   160 13 Mar 08:24 man
-rw-r--r--   1 root  wheel   168 13 Mar 08:23 release

bin子目录ls -la输出:

total 3688
drwxr-xr-x  17 root  wheel     544 27 Mag 10:13 .
drwxr-xr-x  13 root  wheel     416 13 Mar 08:24 ..
lrwxr-xr-x   1 root  wheel       8 27 Mag 10:13 ControlPanel -> jcontrol
-rwxr-xr-x   1 root  wheel  174672 13 Mar 08:41 _javaws
-rwxr-xr-x   1 root  wheel  154080 13 Mar 08:41 java
lrwxr-xr-x   1 root  wheel      47 27 Mag 10:13 javaws -> /Library/Application Support/Oracle/Java/javaws
-rwxr-xr-x   1 root  wheel    3972 13 Mar 08:24 jcontrol
-rwxr-xr-x   1 root  wheel  154032 13 Mar 08:42 jjs
-rwxr-xr-x   1 root  wheel  154048 13 Mar 08:42 keytool
-rwxr-xr-x   1 root  wheel  154048 13 Mar 08:42 orbd
-rwxr-xr-x   1 root  wheel  154048 13 Mar 08:42 pack200
-rwxr-xr-x   1 root  wheel  154048 13 Mar 08:42 policytool
-rwxr-xr-x   1 root  wheel  154048 13 Mar 08:41 rmid
-rwxr-xr-x   1 root  wheel  154048 13 Mar 08:41 rmiregistry
-rwxr-xr-x   1 root  wheel  154048 13 Mar 08:41 servertool
-rwxr-xr-x   1 root  wheel  154048 13 Mar 08:42 tnameserv
-rwxr-xr-x   1 root  wheel  150208 13 Mar 08:41 unpack200

问题根源

你当前使用的是JRE(Java运行环境),而非JDK(Java开发工具包)。/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home是Oracle为浏览器插件提供的JRE路径,JRE仅包含运行Java程序所需的文件,没有Android构建必需的tools.jar。

解决步骤

1. 卸载现有JRE(可选但推荐)

执行以下命令清理当前的JRE:

sudo rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane

2. 下载并安装Oracle Java 8 JDK

下载Java SE 8 JDK安装包(选择对应Mac架构的版本,如arm64),安装后JDK默认路径为/Library/Java/JavaVirtualMachines/jdk1.8.xxx.jdk/Contents/Home。

3. 验证JDK安装

执行命令确认正确的JDK被识别:

/usr/libexec/java_home -V | grep jdk

输出应显示类似如下的JDK路径(而非JRE路径):

Matching Java Virtual Machines (1):
    1.8.411.09 (arm64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_411.jdk/Contents/Home

4. 配置Android Studio使用正确JDK

  • 打开Android Studio,按下快捷键⌘;打开Project Structure
  • 切换到SDK Location标签页,找到JDK location
  • 选择刚安装的JDK路径,或直接输入/Library/Java/JavaVirtualMachines/jdk1.8.xxx.jdk/Contents/Home
  • 点击Apply和OK,重新构建项目

5. 配置环境变量(可选)

为确保终端和其他工具也使用正确的JDK,在~/.zshrc(或~/.bash_profile,根据你的Shell环境)中添加:

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

执行source ~/.zshrc使配置生效。


内容的提问来源于stack exchange,提问作者realtebo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 06:37:07