gpt4 book ai didi

java - 生成自定义 javadoc 时遇到问题; 'cannot find doclet'

转载 作者:搜寻专家 更新时间:2023-10-31 20:32:49 41 4
gpt4 key购买 nike

我正在尝试使用 Doclet 创建自定义 Javadoc 生成器,但我遇到了一些问题。

我正在关注 the official documentation最初在我的项目中包含 tools.jar 文件时遇到了问题,但我设法解决了这个问题。

我现在的问题是,在运行这个命令后...

javadoc -doclet ListClass -docletpath .  MyClass.java

...我收到消息...

javadoc: error - Cannot find doclet class ListClass

正如我所说,我大部分时间都在遵循官方文档中的教程,但这里是我的代码以供引用。

ListClass.java:

import com.sun.javadoc.*;

public class ListClass {

public static boolean start(RootDoc root) {
ClassDoc[] classes = root.classes();
for (int i = 0; i < classes.length; ++i) {
System.out.println(classes[i]);
}
return true;
}

}

MyClass.java:

/**
* Documentation for my class
*/
public class MyClass {

public static void main(String[] args) {

}

/**
* Documentation for my static void method
*
* @param param This is the parameter it takes in
*/
public static void myStaticVoidMethod(String param) {

}

}

所以我要问的是为什么我会收到上面发布的错误。如果有人能够提供有关 Doclet 工作原理的更全面的指南,那也很棒。


注意:我正在为我的项目使用 IntelliJ IDE。这是我的目录结构:

  • .idea
    • ...
  • 出来
    • ...
  • 来源
    • 列表类.java
    • MyClass.java
  • JavadocGenerator.iml

最佳答案

您需要编译您的 ListClass 文件。像这样的东西:

javac -d . ListClass.java -cp /path/to/tools.jar

Doclet 类是工具 jar 的一部分,因此您需要将其作为编译时依赖项包含在内。

然后你的命令

javadoc -doclet ListClass -docletpath .  MyClass.java

应该可以。

编辑

对于您的项目结构,如果您从根目录编译,请确保通过它们的子目录引用您的文件,并确保任何绝对 Windows 路径都用双引号引起来:

javac -d . ./src/ListClass.java -cp "C:/Program Files/Java/jdk1.8.0_66/lib/tools.jar"

这将在项目的根目录下创建一个已编译的 ListClass 文件,并从那里使用您的 javadoc 命令:

javadoc -doclet ListClass -docletpath .  ./src/MyClass.java

最好创建一个类目录来放置您编译的类,而不是在项目的根目录中,但我只是使用您提供的结构。请参阅 javac 的文档和 javadoc了解更多信息。

关于java - 生成自定义 javadoc 时遇到问题; 'cannot find doclet',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36778078/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com