为什么我不能导入 jdk.javadoc.doclet 包?

Why can't i import the jdk.javadoc.doclet package?

我想为 JavaDoc 制作一个自定义 doclet,我最初尝试为该应用程序使用 com.sun.javadoc 包。我成功地创建了一个 doclet 并将其与 JDK8 一起使用,但是在 JDK12 上这样做会给我一个警告,表明此 class 已被弃用,很快就会失去支持。

我在另一台装有 OpenJDK15 的计算机上用 JavaDoc 尝试了相同的 doclet(运行 java --version 给了我以下输出:)

openjdk 15.0.1 2020-10-20
OpenJDK Runtime Environment (build 15.0.1+9-18)
OpenJDK 64-Bit Server VM (build 15.0.1+9-18, mixed mode, sharing)

它真的不受支持:(我无法使用它,它给了我一条消息说这个 doclet 不受支持。

经过一些研究,我发现新的 jdk 使用 jdk.javadoc.doclet API 创建 doclet。我使用上面的 class 创建了一个基本的 doclet,它实际上什么都不做,只是实现了所有方法并尝试编译,但是编译器给我一个错误,说 package jdk.javadoc.doclet does not exist.

我使用 IntelliJ 作为我的 IDE 但它没有通过 IntelliSense 显示任何错误。 IntelliJ 认为该包存在,甚至为我提供了该包 classes 中方法的代码突出显示。

请确保您的开发 IDE 中的 JDK,即 Eclipse,Intellij,使用与您的 PATH 变量相同的变量。您可以通过检查 IDE 的相应设置的属性来验证这一点。可能会发生这样的情况,即您的 PC 上安装了多个版本的 JDK,而您的开发 ide 使用的版本与系统版本不同。有这样的问题会在编译源代码时在 ide 和 IDE 中产生问题。

解决方案非常简单。我只需要使代码模块化(即,我需要在我的项目中添加一个 module-info.java 文件)并向其中添加 requires jdk.javadoc 行以使代码 运行 没有任何错误。