2

我有一个 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 问题无关,而且确实是垃圾邮件。)

你如何解决这个问题?

4

1 回答 1

4

Javadoc的文档说允许使用路径列表。确保您使用了正确的路径分隔符,“;” 或 ':' 取决于您使用的是 Windows 还是 UNIX(分别)。

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

如果classpathlist包含多个路径或 jar 文件,它们应该:在 Solaris 上用冒号 ( )分隔,;在 Windows 上用分号 ( ) 分隔。

于 2009-02-11T17:10:35.050 回答