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

module-info.java含导入时javadoc执行失败的解决方案咨询

解决OpenJDK模块含ParticipatesInPreview导入时Javadoc模块未找到错误

核心解决方案

针对包含jdk.internal.javac.ParticipatesInPreview导入及注解的OpenJDK模块,调整Javadoc命令,补充模块依赖、内部包访问权限及预览特性启用参数,示例命令如下:

JDK20的java.management模块示例

javadoc \
  --module java.management \
  --module-source-path <OpenJDK源码根目录> \
  --add-modules jdk.compiler \
  --add-reads java.management=jdk.compiler \
  --add-exports jdk.compiler/jdk.internal.javac=java.management \
  --enable-preview \
  --release 20 \
  -d ./javadoc-output

JDK21的jdk.compiler模块示例

javadoc \
  --module jdk.compiler \
  --module-source-path <OpenJDK源码根目录> \
  --enable-preview \
  --release 21 \
  -d ./javadoc-output

参数说明

  • --module-source-path:指定OpenJDK源码根目录,确保Javadoc能定位到目标模块的源码文件。
  • --add-modules jdk.compiler:显式引入ParticipatesInPreview类所属的jdk.compiler模块。
  • --add-reads java.management=jdk.compiler:允许目标模块读取jdk.compiler模块内容,解决依赖解析问题。
  • --add-exports jdk.compiler/jdk.internal.javac=java.management:将jdk.compiler的内部包jdk.internal.javac暴露给目标模块——因为ParticipatesInPreview属于非公开内部API,默认禁止外部模块访问。
  • --enable-preview:启用预览特性支持,确保Javadoc能解析@ParticipatesInPreview注解。
  • --release:指定与目标JDK版本匹配的文档生成版本,避免版本不兼容问题。

问题原因

出现“module xxx not found on source path”错误的核心逻辑:

  1. jdk.internal.javac.ParticipatesInPreview是jdk.compiler模块的内部API,默认禁止其他模块访问,Javadoc解析module-info.java时无法识别该导入。
  2. 仅添加--add-modules不足以解决权限问题,必须通过--add-reads和--add-exports开放模块间的读取与内部包访问权限。
  3. 缺少--enable-preview参数时,Javadoc无法解析预览特性相关注解,间接导致模块解析失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:50:07