Bazel构建MediaPipe手部追踪示例时找不到Java二进制文件如何解决
MediaPipe Bazel构建JDK缺失错误解决方案
错误核心原因
Bazel构建时未检测到符合要求的Java运行环境,无法定位java.exe可执行文件。
原始错误提示:
Error in fail: Auto-Configuration Error: Cannot find Java binary bin/java.exe in C:/users/admin/_bazel_admin/install/b88b7745f304d609d2d5d80b0c77ba96/embedded_tools/tools/jdk/nosystemjdk; either correct your JAVA_HOME, PATH or specify embedded Java (e.g. --javabase=@bazel_tools//tools/jdk:remote_jdk11)
解决方案
方案1:临时指定远程JDK(单次构建生效,最快验证)
在你原本的Bazel构建命令末尾添加参数--javabase=@bazel_tools//tools/jdk:remote_jdk11即可,示例:
bazel build -c opt --config=android_arm64 //mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu:handtrackinggpu --javabase=@bazel_tools//tools/jdk:remote_jdk11
方案2:全局配置Bazel JDK(永久生效,无需每次加参数)
- 进入Windows用户根目录(默认路径为
C:\Users\你的用户名) - 新建/编辑名为
.bazelrc的文件 - 在文件中添加一行配置:
build --javabase=@bazel_tools//tools/jdk:remote_jdk11
- 保存后重新执行构建命令即可。
方案3:修复系统JAVA_HOME配置(治本方案)
- 安装JDK 11(MediaPipe官方推荐版本,避免兼容性问题)
- 打开Windows环境变量配置,新增系统变量
JAVA_HOME,值为JDK的安装根目录,示例:C:\Program Files\Java\jdk-11.0.18(注意路径不要指向bin目录) - 编辑系统变量
Path,新增条目%JAVA_HOME%\bin - 打开新的cmd窗口,执行
java -version和javac -version,两个命令都能正常输出版本号即为配置成功 - 执行
bazel clean --expunge清除Bazel旧缓存,再重新执行构建命令。
内容的提问来源于stack exchange,提问作者fatima
相关产品推荐
相关产品推荐

