5

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

我正在关注官方文档,最初在将tools.jar文件包含在我的项目中时遇到了麻烦,但我设法解决了这个问题。

我现在的问题是运行此命令后...

javadoc -doclet ListClass -docletpath .  MyClass.java

...我收到消息...

javadoc: 错误 - 找不到 doclet 类 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。这是我的目录结构:

  • 。主意
    • ...
  • 出去
    • ...
  • 源代码
    • 列表类.java
    • MyClass.java
  • JavadocGenerator.iml
4

1 回答 1

1

您需要编译您的 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

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

于 2016-04-25T19:27:19.610 回答