0

我遇到了下一个问题:

我正在尝试在控制台(Windows 7)中运行我自己的漂亮 doclet:

javadoc com.mypackages.api -sourcepath ./src/main/java/

这让我遇到了一大堆例外:

java.lang.ClassCastException: com.sun.tools.javadoc.ClassDocImpl cannot be cast to com.sun.javadoc.AnnotationTypeDoc
    at com.sun.tools.javadoc.AnnotationDescImpl.annotationType(AnnotationDescImpl.java:46)
    at com.sun.tools.doclets.internal.toolkit.util.Util.isDeprecated(Util.java:811)
    at com.sun.tools.doclets.formats.html.PackageWriterImpl.writeClassesSummary(PackageWriterImpl.java:114)

(总是一样的)。

然后,我在 StackOverflow 中发现有人说这是一个带注释的第三方库问题(StackOverFlow:为什么在生成 javadocs 时我得到一个 ClassCastException?)。解决方案看起来是将那些带有注释的库添加到类路径中,所以我运行了下一行:

javadoc com.mindmatics.mcashwebservice.remote.api -sourcepath ./src/main/java/ -docletpath ./all-libs/*.jar

我现在收到下一个错误:

javadoc: error - Illegal package name: "./all-libs/webservice-commons-1.0.2-SNAPSHOT.jar"

所有库都包含在 all-libs 目录中。谁能解释我做错了什么?非常感谢 :-)

PS:我使用的是 JDK 1.6

4

2 回答 2

1

查看您的目标路径:./all-libs/*.jar

不幸的是,这不是一个带有连字符的正确包名称。您需要去掉连字符或将其转换为下划线。

于 2012-05-09T12:20:12.673 回答
1

它似乎*.jar被shell扩展为1.jar 2.jar ...
列出-classpath dir1/1.jar:dir2/2.jar对我有用的jar文件。

于 2013-06-18T12:53:55.470 回答