为什么我不能导入 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
行以使代码 运行 没有任何错误。
我想为 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
行以使代码 运行 没有任何错误。