Gradle无法找到javadoc可执行文件的原因及解决咨询
问题:构建opensearch-hadoop时javadoc任务报错找不到存在的javadoc.exe
环境信息
OpenSearch-Hadoop Build Hamster says Hello!Min runtime: 1.8
Building version [1.0.1-SNAPSHOT]
Testing against OpenSearch [2.7.0-SNAPSHOT] with Lucene [9.5.0-snapshot-a4ef70f]
Using Gradle [8.1.1]
Using Apache Hadoop on YARN [3.1.2]OpenSearch Build Hamster says Hello!
Gradle Version : 8.1.1
OS Info : Windows 10 10.0 (amd64)
JDK Version : 11 (Oracle JDK)
JAVA_HOME : C:\Program Files\Java\jdk-11
Random Testing Seed : DBEBD3C9481699C
In FIPS 140 mode : false
错误信息
FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':opensearch-hadoop-mr:javadoc'. > Error while evaluating property 'javadocTool' of task ':opensearch-hadoop-mr:javadoc'. > Failed to calculate the value of task ':opensearch-hadoop-mr:javadoc' property 'javadocTool'. > The configured executable does not exist (C:\Program Files\Java\jdk1.8.0_361\bin\javadoc)
已尝试操作
- 修改JAVA_HOME和JAVA8_HOME环境变量
- 将%JAVA_HOME%\bin添加到PATH中
- 在build.gradle文件中禁用javadoc任务:
tasks.withType(Javadoc).all { enabled = false }
排查与解决方案
1. 确认环境变量生效状态
Windows下修改环境变量后,已打开的命令行或IDE不会自动加载新变量,必须重启终端/IDE,再执行构建命令。可在终端输入echo %JAVA8_HOME%验证路径是否正确输出。
2. 处理路径空格问题
Windows下Program Files含空格,Gradle解析路径时可能出现异常,可尝试两种方式:
- 使用短路径替代:将
C:\Program Files\Java\jdk1.8.0_361改为C:\Progra~1\Java\jdk1.8.0_361 - 在Gradle配置中明确带引号的路径,修改build.gradle:
tasks.withType(Javadoc) { executable = "\"${System.getenv('JAVA8_HOME')}\\bin\\javadoc.exe\"" }
3. 针对子项目单独禁用javadoc任务
全局禁用可能未覆盖子项目opensearch-hadoop-mr,在根build.gradle中添加:
project(':opensearch-hadoop-mr') { tasks.javadoc.enabled = false }
或者直接用命令行跳过javadoc任务,执行:
gradlew.bat build -x javadoc
4. 明确指定JDK8路径给javadoc任务
在build.gradle中强制指定javadoc使用的JDK8路径:
tasks.withType(Javadoc) { javaHome = file(System.getenv('JAVA8_HOME')) }
确保JAVA8_HOME环境变量指向C:\Program Files\Java\jdk1.8.0_361。
内容的提问来源于stack exchange,提问作者vp158
相关产品推荐
相关产品推荐

