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



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

我在另一台带有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.docletAPI来创建doclet。我使用上面的类创建了一个基本的doclet,它实际上什么都不做,只是实现了所有的方法并尝试编译,但编译器给了我一个错误,说package jdk.javadoc.doclet does not exist

我使用IntelliJ作为我的IDE,但它的IntelliSense没有显示任何错误。IntelliJ相信该包存在,甚至为我提供了该包类中方法的代码高亮显示。

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

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

相关内容

  • 没有找到相关文章

最新更新