Far*_*deh 5 java javadoc doclet
我正在使用创建自定义Javadoc生成器Doclet,但我遇到了一些问题.
我正在关注官方文档,并且最初tools.jar在我的项目中包含该文件时遇到了问题,但我设法解决了这个问题.
我现在的问题是运行此命令后......
javadoc -doclet ListClass -docletpath . MyClass.java
Run Code Online (Sandbox Code Playgroud)
......我收到的消息......
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;
}
}
Run Code Online (Sandbox Code Playgroud)
而且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) {
}
}
Run Code Online (Sandbox Code Playgroud)
所以我要问的是为什么我收到上面发布的错误.如果有人能够提供更全面的指导,说明哪些Doclet作品也会很棒.
注意:我正在为我的项目使用IntelliJ IDE.这是我的目录结构:
您需要编译 ListClass 文件。就像是:
javac -d . ListClass.java -cp /path/to/tools.jar
Run Code Online (Sandbox Code Playgroud)
Doclet 类是工具 jar 的一部分,因此您需要将其包含为编译时依赖项。
然后你的命令
javadoc -doclet ListClass -docletpath . MyClass.java
Run Code Online (Sandbox Code Playgroud)
应该管用。
编辑
对于您的项目结构,如果您从根目录进行编译,请确保通过子目录引用您的文件,并确保所有绝对 Windows 路径都用双引号引起来:
javac -d . ./src/ListClass.java -cp "C:/Program Files/Java/jdk1.8.0_66/lib/tools.jar"
Run Code Online (Sandbox Code Playgroud)
这将在项目的根目录创建一个已编译的 ListClass 文件,并从那里使用 javadoc 命令:
javadoc -doclet ListClass -docletpath . ./src/MyClass.java
Run Code Online (Sandbox Code Playgroud)
最好创建一个类目录来放置已编译的类,而不是放在项目的根目录中,但我只是使用您提供的结构。有关详细信息,请参阅javac和javadoc的文档。