2019 年 9 月 29 日更新:Java 版本 11
下面的技术现在不适用于 Java 11,可能还有更高版本:无法忽略多个“断开的链接”(即到其他类、其他 API)。解决方案:保留 Java 版本 8 的 javadoc 可执行文件(或 javadoc.exe)
制作自己的本地 javadoc 有充分的理由,而且不是特别困难!
首先您需要来源。在编写 Java 8 JDK 时,附带了一个名为 src.zip 的 zip 文件。有时,由于无法解释的原因,Oracle 并不总是包含源代码。因此,对于一些旧版本(谁知道未来),您必须以另一种方式获取 Java 源代码。还值得一提的是,在过去,Oracle 有时会将源代码包含在 Linux 版本的 JDK 中,但不包含在 Windows 版本中。
我刚刚解压了这个文件……最上面的目录是“com”、“java”、“javax”、“launcher”和“org”。目录launcher 不包含要记录的文件。
您可以通过在命令提示符/终端 CD 到目录...\src 来非常简单地从其中的任何一个或全部生成 javadocs。那就去吧
javadoc -d docs -Xmaxwarns 10 -Xmaxerrs 10 -Xdoclint:none -sourcepath . -subpackages java:javax:org:com
注意这里有个“.”在-sourcepath之后
就这么简单。生成自己的 javadocs 也有两个巨大的优势
- 您知道它们正是您在系统上使用的 JDK(或任何外部 jar 文件)的正确 javadocs
- 一旦你养成了习惯,重构
您的 Javadocs 不是一个令人厌烦的挑战(即去哪里寻找它们)。例如,我刚刚解压缩了几个包紧密耦合的源 jar,因此它们的源实际上是“合并”的,然后从它们中创建了一个 Javadoc...
NB Swing 已半正式死亡。我们都应该切换到 JavaFX,它与 Java 8 JDK 捆绑在一起很有帮助,但在它自己的源文件中,javafx-src.zip。
解压后,显示 3 个“根”包:com、javafx 和 netscape(什么?)。这些应该手动移动到解压缩的src 目录下的适当位置(包括Javacom.sun 结构下的JavaFX com.sun 包)。编译所有这些 Javadoc 文件花费了我的机器不可忽略的时间。我希望很快能看到所有 JavaFX 源类和所有其他源类。
顺便说一句,同样的想法适用于记录您使用的任何和所有 Java jar(带有源代码)。但是,可以在 Maven Central http://search.maven.org...
找到大多数 jar 的所有版本及其文档可供下载
PS 事后思考:
使用 Eclipse 和“Gradle STS”插件:“New Gradle STS Project”向导将创建一个包含该行的 gradle.build 文件
include plugin: 'eclipse'
当你去时,这会神奇地下载带有可执行jar(在GRADLE_HOME下)的源jar
./gradlew build
[附录 2020-01-13:如果您选择不在 build.gradle 中包含 Eclipse 插件,那么您似乎可以(在 Project Explorer 中选择您的项目)对-单击Gradle --> Refresh Gradle Project 让Eclipse 下载源文件。]
... 让您更加确定您拥有正确的 src 并因此获得了正确的 javadoc 用于相关依赖项。