我有一个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上带有分号(;
)。