我有一个Javadoc doclet,它需要一个附加的jar文件位于doclet的类路径上。要从命令行运行doclet,我需要执行以下操作:

java com.sun.tools.javadoc.Main -doclet myPackage.myDoclet -docletpath /path/to/doclet/classes


当我运行它时,它会在路径上找到doclet并执行它,但是doclet使用了一个需要在类路径上的附加jar,因此最终,我得到了ClassNotFoundException。

当我将命令行更改为此时:

java com.sun.tools.javadoc.Main -doclet myPackage.myDoclet -docletpath /path/to/doclet/classes:/path/to/some.jar


它不再找到doclet(javadoc: error - Cannot find doclet class com.adventact.si.workflow.javadoc.ListClass)。因此,似乎doclet参数不接受路径列表,而仅接受一个。

(请注意,这些命令行并不完整-我没有展示如何设置类路径,因为它与docletpath问题无关,并且确实是垃圾邮件。)

您如何解决呢?

最佳答案

documentation for Javadoc表示允许使用路径列表。确保使用正确的路径分隔字符“;”或“:”,具体取决于您使用的是Windows还是UNIX。

注意:如果您真正使用的是java而不是javadoc来执行doclet,则请检查类的实现。 -docletpath不是java可执行文件的标准选项,因此必须由您的doclet实现解释。但是,如果您使用的是javadoc,那么我上面指出的文档会说:


  如果classpathlist包含多个路径或jar文件,则应将它们分开
  在Solaris上带有冒号(:),在Windows上带有分号(;)。

07-26 06:27
查看更多