【问题标题】:Why can't i import the jdk.javadoc.doclet package?为什么我不能导入 jdk.javadoc.doclet 包?
【发布时间】:2021-04-17 08:52:49
【问题描述】:

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

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

【问题讨论】:

  • 嘿 @Abra ,我知道 com.sun.javadoc 已被弃用,但当我使用 jdk8 时它正在工作。现在,我想迁移到更高版本的 JDK,为此我需要使用jdk.javadoc.doclet,这会导致错误。 IDE 将其识别为可用,但在编译时显示该包不存在。
  • 你在项目中使用 Maven/gradle 吗?更改设置(macOS 上的首选项)会有所不同吗?构建、执行、部署 |编译器 | Java 编译器 | 使用'--release' 选项进行交叉编译(Java 9 及更高版本) 选项?
  • @Andrey 我不使用 maven/gradle 或任何其他系统。

标签: java intellij-idea javadoc doclet


【解决方案1】:

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

【讨论】:

  • 谢谢。我会检查并告诉你
  • 我试过了,但没有帮助。但是感谢您的尝试
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-12
    • 1970-01-01
    • 2020-12-04
    • 2018-08-30
    • 2020-12-23
    • 2018-01-12
    • 2021-11-24
    • 2020-04-24
    相关资源
    最近更新 更多