执行flutter doctor --android-licenses遇JAVA_HOME无效目录错误
flutter doctor --android-licenses中JAVA_HOME无效的问题 问题描述
执行flutter doctor --android-licenses时触发错误:
ERROR: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/java-11-openjdk-amd64
请将环境中的JAVA_HOME变量设置为与Java安装位置匹配。
尝试常规解决方案无效后,以下是亲测有效的解决步骤:
解决步骤
第一步:确认系统中真实存在的JDK路径
执行命令查看已安装的Java可执行文件路径:update-alternatives --list java输出示例:
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
/usr/lib/jvm/java-8-openjdk-amd64/bin/java第二步:提取并验证JDK根路径
从输出中截取/bin/java之前的部分作为JDK根路径,比如/usr/lib/jvm/java-11-openjdk-amd64,执行以下命令验证路径是否存在:ls /usr/lib/jvm/java-11-openjdk-amd64如果返回目录内容,说明路径有效;如果提示不存在,换另一个输出的路径重复验证。
第三步:临时设置JAVA_HOME测试
在当前终端执行以下命令(替换为你验证后的有效路径):export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64接着执行
flutter doctor --android-licenses,确认错误是否消失。第四步:永久配置JAVA_HOME
根据你使用的shell选择对应的配置文件:- 若使用bash,编辑
~/.bashrc文件:
在文件末尾添加:nano ~/.bashrc
保存后执行export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATHsource ~/.bashrc使配置生效。 - 若使用zsh,编辑
~/.zshrc文件,步骤同上。
- 若使用bash,编辑
第五步:验证永久配置
打开新终端,执行以下命令确认路径正确:echo $JAVA_HOME再次执行
flutter doctor --android-licenses,问题即可解决。
内容的提问来源于stack exchange,提问作者Sibulele

