Java 如何在Eclipse中调试Doclet?
我正在创建一个自定义doclet,我想在Maven构建中使用Javadoc插件运行它,但现在我想在Eclipse中测试/调试doclet。我该怎么做Java 如何在Eclipse中调试Doclet?,java,eclipse,debugging,doclet,Java,Eclipse,Debugging,Doclet,我正在创建一个自定义doclet,我想在Maven构建中使用Javadoc插件运行它,但现在我想在Eclipse中测试/调试doclet。我该怎么做 我必须以编程方式调用javadoc吗?如何创建?您只需在doclet中创建一个main方法并调用(示例,请参阅完整的cmdling参考): 这也适用于调试器 您可能还必须添加-classpath参数,该参数包含解析实际代码所需的所有jar依赖项。我收到了带有@Jan answer的错误消息 Error:(13, 35) java: referenc
我必须以编程方式调用javadoc吗?如何创建?您只需在doclet中创建一个main方法并调用(示例,请参阅完整的cmdling参考): 这也适用于调试器
您可能还必须添加-classpath参数,该参数包含解析实际代码所需的所有jar依赖项。我收到了带有@Jan answer的错误消息
Error:(13, 35) java: reference to execute is ambiguous
both method execute(java.lang.String...) in com.sun.tools.javadoc.Main and method execute(java.lang.String,java.lang.String...) in com.sun.tools.javadoc.Main match
在对这些代码进行更改之后,它工作得很好
com.sun.tools.javadoc.Main.execute(new String[]{
"-doclet", CustomDoclet.class.getName(),
"path/to/src/XXX.java"
});
如果您运行的是JDK v1.8,则可能需要使用以下代码段:
Main.execute(docletFqcn.getClass().getClassLoader(), "-doclet", docletFqcn, javaSourceFilePath);
其中,
docletFqcn
是Doclet类的完全限定类名,javaSourceFilePath
是要处理的Java文件的位置。Sean,好问题:我面临调试Doclet的同样挑战;尽管来自Eclipse开发组的消息指出了一个非常丑陋的方法,但我认为它花了我30分钟的时间,但它是有效的。如果有人找到更简单的方法,请发布:-)。不管怎样,问题和链接+1 Sean。问题中的链接是brokentrue,删除它。不管怎样,这很糟糕,它只在使用start
方法时才起作用,从9开始,run
就不再适用了。您需要调用com.sun.tools.javadoc.Main.execute(新字符串[]{“-doclet”+MyDoclet.class.getName())
至少从Java 8开始,否则编译器会失败,方法execute(String[])对于Main类型是不明确的
Main.execute(docletFqcn.getClass().getClassLoader(), "-doclet", docletFqcn, javaSourceFilePath);