编译 javadoc 时包含外部 jar

Include external jars when compiling javadoc

我们目前可能有很多项目使用一些外部 jar,例如 apache commons。现在,当编译 javadoc 并使用此命令将其指向我们的源代码时:javadoc -version -author -sourcepath project/src -d . -subpackages . -encoding "ISO-8859-1" 你会得到类似

的错误

OurFTPClient.java:15: error: package org.apache.commons.net.ftp does not exist.

现在通过一些谷歌搜索(实际上很难找到,因为你会得到很多关于将 javadoc 放入 jar 中的问题的答案)我发现我只需要像这样修改 javadoc 命令:javadoc -version -author -sourcepath project/src -d . -subpackages . -encoding "ISO-8859-1" -classpath project/jars/*。使用 oracle JDK8,这在 windows 上完全正常。但是在 linux 和 OpenJDK8 下,这个错误与

javadoc: error - Illegal package name: "project/jars/commons-codec-1.10.jar".

如果有人知道为什么会发生这种情况,这是否是 OpenJDK 中的错误,以及如何解决它,我将不胜感激!

答案实际上很简单,只是不是很直观。您必须在类路径周围加上引号才能在 Linux 下工作(我想,不完全确定它是否与 OpenJDK 相关)。

最终命令将如下所示:javadoc -version -author -sourcepath project/src -d . -subpackages . -encoding "ISO-8859-1" -classpath "project/jars/*"