javadoc 命令

Name

javadoc - 从 Java 源文件生成 API 文档的 HTML 页面

概要

javadoc [options ] [packagenames ] [sourcefiles ] [@ files ]

options
指定命令行选项,以空格分隔。请参见 标准 javadoc 选项额外的 javadoc 选项标准 Doclet 的标准选项标准 Doclet 的额外选项
packagenames

指定要记录的包的名称,以空格分隔,例如 java.lang java.lang.reflect java.awt 。如果您还想记录子包,请使用 -subpackages 选项来指定包。

默认情况下,javadoc 在当前目录和子目录中查找指定的包。使用 -sourcepath 选项指定要在其中查找包的目录列表。

sourcefiles
指定要记录的 Java 源文件的名称,以空格分隔,例如 Class.java Object.java Button.java 。默认情况下,javadoc 在当前目录中查找指定的类。但是,您可以指定类文件的完整路径并使用通配符,例如 /home/src/java/awt/Graphics*.java 。您还可以指定相对于当前目录的路径。
@ files
指定包含 javadoc 工具选项列表、包名和源文件名的文件名,顺序不限。

Description

javadoc 工具解析一组 Java 源文件中的声明和文档注释,并生成相应的 HTML 页面,这些页面描述(默认情况下)公共类和受保护类、嵌套类(但不是匿名内部类)、接口、构造函数、方法和领域。您可以使用 javadoc 工具为一组源文件生成 API 文档或实现文档。

您可以对整个包、单个源文件或两者运行 javadoc 工具。记录整个包时,您可以使用 -subpackages 选项递归遍历目录及其子目录,或者传入包名称的显式列表。当您记录单个源文件时,传入 Java 源文件名列表。

一致性

标准 Doclet 不会验证文档注释的内容是否符合要求,也不会尝试更正文档注释中的任何错误。建议任何运行 javadoc 的人注意在生成不一致的输出或包含可执行内容(例如 JavaScript)的输出时可能出现的问题。 Standard Doclet 确实提供了DocLint 功能来帮助开发人员检测文档注释中的常见问题;但也建议使用任何适当的一致性和其他检查工具检查生成的输出。

有关 HTML5 文档的一致性要求的更多详细信息,请参阅 HTML5 规范中的一致性要求。有关与网页相关的安全问题的更多详细信息,请参阅 开放 Web 应用程序安全项目 (OWASP) 页面。

选项

javadoc 支持主要 javadoc 工具和当前选定的 doclet 的命令行选项。如果未指定其他 doclet,则使用标准 Doclet。

GNU 风格的选项(即以 -- 开头的选项)可以使用等号 (=) 而不是空白字符来将选项的名称与其值分开。

标准 javadoc 选项

以下核心 javadoc 选项等同于相应的 javac 选项。有关使用这些选项的详细说明,请参阅 javac 中的 Standard Options

以下选项是核心 javadoc 选项,不等同于相应的 javac 选项:

-breakiterator

BreakIterator 计算第一句。第一句话被复制到包、类或成员摘要以及字母索引中。 BreakIterator 类用于确定除英语之外的所有语言的句子结尾。

  • 英语默认断句算法 --- 在句点后跟空格或 HTML 块标记处停止,例如 <P>

  • Breakiterator 断句算法 --- 当下一个单词以大写字母开头时,在句号、问号或感叹号后跟一个空格处停止。这是为了处理大多数缩写(例如“序列号有效”,但不会处理“史密斯先生”)。 -breakiterator 选项不会停在以数字或符号开头的 HTML 标记或句子。该算法在 ../filename 的最后一个句点停止,即使嵌入在 HTML 标记中也是如此。

-doclet class
使用备用 doclet 生成输出。使用完全限定名称。此 doclet 定义内容并格式化输出。如果未使用 -doclet 选项,则 javadoc 工具将使用标准 doclet 生成默认 HTML 格式。此类必须包含 start(Root) 方法。此起始类的路径由 -docletpath 选项定义。
-docletpath path
指定在哪里可以找到 doclet 类文件(用 -doclet 选项指定)和它所依赖的任何 JAR 文件。如果起始类文件在 JAR 文件中,则此选项指定该 JAR 文件的路径。您可以指定绝对路径或相对于当前目录的路径。如果 classpathlist 包含多个路径或 JAR 文件,那么它们应该在 Linux 上用冒号 (:) 分隔,在 Windows 上用分号 (;) 分隔。当 doclet 起始类已经在搜索路径中时,不需要此选项。
-exclude pkglist

无条件地从 -subpackages 形成的列表中排除指定的包及其子包。它排除了那些包,即使它们会被一些更早或更晚的 -subpackages 选项包含在内。

以下示例将包括 java.iojava.utiljava.math(以及其他),但将排除以 java.netjava.lang 为根的包。请注意,这些示例不包括 java.lang.ref,它是 java.lang 的子包。

  • Linux and macOS:

    javadoc -sourcepath /home/user/src -subpackages java -exclude java.net:java.lang 
  • Windows:

    javadoc -sourcepath \user\src -subpackages java -exclude java.net:java.lang 
--expand-requires value

指示 javadoc 工具扩展要记录的模块集。默认情况下,仅记录在命令行中明确给出的模块。支持以下值:

  • transitive :另外包括这些模块的所有必需的传递依赖项。

  • all :包括所有依赖项。

--help-help-h-?
打印标准选项的概要。
--help-extra-X
打印一组额外选项的概要。
-J flag

flag 直接传递给运行 javadoc 工具的 Java 运行时环境 (JRE)。例如,如果您必须确保系统留出 32 MB 的内存来处理生成的文档,那么您将按如下方式调用 -Xmx 选项:javadoc -J-Xmx32m -J-Xms32m com.mypackage。请注意 -Xms 是可选的,因为它仅设置初始内存的大小,这在您知道所需的最小内存量时很有用。

Jflag 之间没有空格。

使用 -version 选项报告用于运行 javadoc 工具的 JRE 版本。

javadoc -J-version
java version "17" 2021-09-14 LTS
Java(TM) SE Runtime Environment (build 17+35-LTS-2724)
Java HotSpot(TM) 64-Bit Server VM (build 17+35-LTS-2724, mixed mode, sharing) 
-locale name

指定 javadoc 工具在生成文档时使用的locale。参数是locale的名称,如 java.util.Locale 文档中所述,例如 en_US(英语,美国)或 en_US_WIN(Windows 变体)。

指定区域设置会导致 javadoc 工具为消息选择该区域设置的资源文件,例如导航栏中的字符串、列表和表格的标题、帮助文件内容、stylesheet.css 文件中的注释等。它还指定按字母顺序排序的列表的排序顺序,以及用于确定第一句结尾的句子分隔符。 -locale 选项不决定在记录类的源文件中指定的文档注释文本的区域设置。

-package
仅显示包、受保护和公共类和成员。
-private
显示所有类和成员。
-protected
仅显示受保护和公共类和成员。这是默认值。
-public
仅显示公共类和成员。
-quiet
关闭消息,以便仅显示警告和错误,以便于查看。它还会抑制 version 字符串。
--show-members value

指定记录哪些成员(字段或方法),其中 value 可以是以下任何一项:

  • public --- 只显示公共成员
  • protected --- 显示公共和受保护的成员;这是默认值
  • package --- 显示公共、受保护和包成员
  • private --- 显示所有成员
--show-module-contents value
指定模块声明的文档粒度,其中 value 可以是 apiall
--show-packages value
指定记录了哪些模块包,其中 value 可以是 exportedall 包。
--show-types value

指定记录哪些类型(类、接口等),其中 value 可以是以下任何一种:

  • public --- 仅显示公共类型
  • protected --- 显示公共和受保护类型;这是默认值
  • package --- 显示公共、受保护和包类型
  • private --- 显示所有类型
-subpackages subpkglist

从指定包中的源文件生成文档,并在其子包中递归生成文档。当向源代码中添加新的子包时,此选项很有用,因为它们是自动包含的。每个包参数都是不需要包含源文件的任何顶级子包(例如 java )或完全限定的包(例如 javax.swing )。在所有操作系统上,参数均以冒号分隔。不允许使用通配符。使用 -sourcepath 指定在何处查找包。此选项不处理源代码树中但不属于包的源文件。

例如,以下命令为名为 javajavax.swing 的包及其所有子包生成文档。

  • Linux and macOS:

    javadoc -d docs -sourcepath /home/user/src -subpackages java:javax.swing 
  • Windows:

    javadoc -d docs -sourcepath \user\src -subpackages java:javax.swing 
-verbose
javadoc 工具运行时提供更详细的消息。如果没有 -verbose 选项,则会显示有关加载源文件、生成文档(每个源文件一条消息)和排序的消息。 -verbose 选项导致打印附加消息,这些消息指定解析每个 Java 源文件的毫秒数。
--version
打印版本信息。
-Werror
如果出现任何警告,则报告错误。

额外的 javadoc 选项

Note: javadoc 的附加选项如有更改,恕不另行通知。

以下附加的 javadoc 选项等同于相应的 javac 选项。有关使用这些选项的详细说明,请参阅 javac 中的 Extra Options

标准 Doclet 的标准选项

以下选项由标准 doclet 提供。

--add-script file

file 作为附加 JavaScript 文件添加到生成的文档中。此选项可以使用一次或多次以指定其他脚本文件。

命令行示例:

javadoc --add-script first_script.js --add-script second_script.js pkg_foo

--add-stylesheet file

file 作为附加样式表文件添加到生成的文档中。此选项可以使用一次或多次以指定文档中包含的其他样式表。

命令行示例:

javadoc --add-stylesheet new_stylesheet_1.css --add-stylesheet new_stylesheet_2.css pkg_foo 
--allow-script-in-comments
在选项和评论中允许 JavaScript。
-author
在生成的文档中包含 @author 文本。
-bottom html-code
指定要放置在每个输出文件底部的文本。文本位于页面底部,下方导航栏下方。文本可以包含 HTML 标记和空格,但是当包含时,文本必须用引号引起来。对文本中的任何内部引号使用转义字符。
-charset name

指定此文档的 HTML 字符集。该名称应该是 IANA 注册表,字符集 中指定的首选 MIME 名称。

例如:

javadoc -charset "iso-8859-1" mypackage 

此命令在每个生成的页面的头部插入以下行:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 

meta 标签在 HTML 标准(4197265 和 4137321),HTML 文档表示 中有描述。

-d directory

指定 javadoc 工具保存生成的 HTML 文件的目标目录。如果省略 -d 选项,则文件将保存到当前目录。 directory 值可以是相对于当前工作目录的绝对值或相对值。 javadoc 工具运行时会自动创建目标目录。

  • Linux and macOS: 例如,以下命令生成包 com.mypackage 的文档并将结果保存在 /user/doc/ 目录中:

    javadoc -d /user/doc/ com.mypackage 
  • Windows: 例如,以下命令生成包 com.mypackage 的文档并将结果保存在 \user\doc\ 目录中:

    javadoc -d \user\doc\ com.mypackage 
-docencoding name

指定生成的 HTML 文件的编码。该名称应该是 IANA 注册表,字符集 中指定的首选 MIME 名称。

三个选项可用于 javadoc 编码命令。 -encoding选项用于编码由javadoc工具读取的文件,而-docencoding-charset选项用于编码由工具写入的文件。在三个可用选项中,最多只有输入和输出编码选项用于单个编码命令。如果在命令中同时指定输入和输出编码选项,则它们的值必须相同。如果您不指定任何输出选项,则默认为输入编码。

例如:

javadoc -docencoding "iso-8859-1" mypackage 
-docfilessubdirs
递归地复制文档文件子目录。启用文档文件目录的深度复制。子目录和所有内容递归复制到目的地。例如,复制目录 doc-files/example/images 及其所有内容。 -excludedocfilessubdir 选项可用于排除特定的子目录。
-doctitle html-code
指定要放置在概览摘要文件顶部附近的标题。 title 标记中指定的文本作为居中的一级标题放置在顶部导航栏的正下方。 title 标签可以包含 HTML 标签和空格,但如果包含,您必须将标题用引号引起来。必须转义 title 标记内的其他引号。例如,javadoc -doctitle "<b>My Library</b><br>v1.0" com.mypackage
-excludedocfilessubdir name1 , name2...
递归复制文档文件子目录时排除具有给定名称的任何子目录。参见 -docfilessubdirs 。由于历史原因,: 可以在参数中的任何位置用作分隔符而不是 ,
-footer html-code
指定要放置在每个输出文件底部的页脚文本。 html-code 值位于下方导航栏的右侧。 html-code 值可以包含 HTML 标记和空格,但在包含时,html-code 值必须用引号引起来。对页脚内的任何内部引号使用转义字符。
-group name p1 , p2...
在“概览”页面中将指定的包组合在一起。由于历史原因,: 可以用作参数中任何位置的分隔符,而不是 ,
-header html-code
指定要放置在每个输出文件顶部的标题文本。标题位于上方导航栏的右侧。 header 可以包含 HTML 标记和空格,但是当它包含时,header 必须用引号引起来。将转义字符用于标头中的内部引号。例如,javadoc -header "<b>My Library</b><br>v1.0" com.mypackage
-helpfile filename

包括链接到顶部和底部导航栏中的 HELP 链接的文件。如果没有此选项,javadoc 工具会创建一个帮助文件 help-doc.html,该文件在 javadoc 工具中进行硬编码。此选项可让您覆盖默认值。 filename 可以是任何名称,不限于 help-doc.htmljavadoc 工具会相应地调整导航栏中的链接。例如:

  • Linux and macOS:

    javadoc -helpfile /home/user/myhelp.html java.awt 
  • Windows:

    javadoc -helpfile C:\user\myhelp.html java.awt 
-html5
此选项是空操作,只是为了向后兼容而保留。
--javafx-javafx
启用 JavaFX 功能。如果在模块路径上检测到 JavaFX 库类,则默认情况下启用此选项。
-keywords

将 HTML 关键字 <meta> 标签添加到为每个类生成的文件中。这些标签可以帮助寻找 <meta> 标签的搜索引擎找到页面。大多数搜索整个 Internet 的搜索引擎都不会查看 <meta> 标签,因为页面可能会滥用它们。将搜索限制在自己网站上的公司提供的搜索引擎可以通过查看 <meta> 标签获益。 <meta> 标记包括类的完全限定名称以及字段和方法的非限定名称。不包括构造函数,因为它们与类名相同。例如,类 String 以这些关键字开头:

<meta name="keywords" content="java.lang.String class">
<meta name="keywords" content="CASE_INSENSITIVE_ORDER">
<meta name="keywords" content="length()">
<meta name="keywords" content="charAt()"> 
-link url

创建指向现有 javadoc 生成的外部引用类文档的链接。 url 参数是包含外部 javadoc 生成文档的目录的绝对或相对 URL。您可以在指定的 javadoc 工具运行中指定多个 -link 选项以链接到多个文档。

package-listelement-list 文件必须位于此 url 目录中(否则,请使用 -linkoffline 选项)。

Note: package-listelement-list 文件由javadoc 工具在生成API 文档时生成,用户不应修改。

当您使用 javadoc 工具记录包时,它使用 package-list 文件来确定在 API 中声明的包。当您为模块生成 API 文档时,javadoc 工具使用 element-list 文件来确定 API 中声明的模块和包。

javadoc 工具从适当的列表文件中读取名称,然后链接到该 URL 上的包或模块。

javadoc 工具运行时,url 值被复制到创建的 <A HREF> 链接中。因此,url 必须是目录而不是文件的 URL。

您可以使用 url 的绝对链接使您的文档链接到任何网站上的文档,或者您可以使用相对链接仅链接到相对位置。如果您使用相对链接,那么您传入的值应该是从目标目录(使用 -d 选项指定)到包含被链接到的包的目录的相对路径。指定绝对链接时,通常使用 HTTP 链接。但是,如果您想链接到没有 Web 服务的文件系统,则可以使用文件链接。仅当想要访问生成的文档的每个人共享同一文件系统时才使用文件链接。在所有情况下,在所有操作系统上,使用斜杠作为分隔符,无论 URL 是绝对的还是相对的,以及 URL 备忘录:统一资源定位符 中指定的 https:http:file:

-link https://<host>/<directory>/<directory>/.../<name>
-link http://<host>/<directory>/<directory>/.../<name>
-link file://<host>/<directory>/<directory>/.../<name>
-link <directory>/<directory>/.../<name> 
--link-modularity-mismatch (warn |info )
指定具有错误模块化的外部文档(例如模块化库的非模块化文档,或相反的情况)是否应报告为警告(warn)或只是一条消息(info)。默认行为是报告警告。
-linkoffline url1 url2

此选项是 -link 选项的变体。他们都创建指向 javadoc 为外部引用类生成的文档的链接。您可以在指定的 javadoc 工具运行中指定多个 -linkoffline 选项。

在以下情况下使用 -linkoffline 选项:

  • 链接到 javadoc 工具无法通过网络连接访问的网络文档

  • 外部文档的 package-listelement-list 文件不可访问或不存在于 URL 位置,但存在于不同的位置并且可以由 package-listelement-list 文件(通常是本地)指定。

Note: package-listelement-list 文件由javadoc 工具在生成API 文档时生成,用户不应修改。

如果 url1 只能在万维网上访问,那么 -linkoffline 选项将消除 javadoc 工具必须具有网络连接才能生成文档的限制。

-linkoffline 选项的另一个用途是作为更新文档的解决方法。在对一整套包或模块运行 javadoc 工具后,您可以对较小的一组已更改的包或模块再次运行 javadoc 工具,以便可以将更新的文件插入回原始集中。

例如,-linkoffline 选项有两个参数。第一个用于将字符串嵌入到 <a href> 链接中,第二个告诉 javadoc 工具在哪里可以找到 package-listelement-list 文件。

url1url2 值是包含您要链接到的外部 javadoc 生成文档的目录的绝对或相对 URL。相对时,该值应该是从目标目录(用 -d 选项指定)到被链接到的包的根目录的相对路径。请参阅 -link 选项中的 url

--link-platform-properties url

指定用于配置平台文档链接的属性文件。

url 参数应指向包含一个或多个具有以下格式的条目的属性文件,其中 <version> 是传递给 --release--source 选项的平台版本,<url> 是相应平台 API 文档的基本 URL:

doclet.platform.docs.<version>=<url> 

例如,包含版本 15 到 17 的 URL 的属性文件可能包含以下行:

doclet.platform.docs.15=https://example.com/api/15/
doclet.platform.docs.16=https://example.com/api/16/
doclet.platform.docs.17=https://example.com/api/17/ 

如果属性文件不包含特定版本的条目,则不会生成平台链接。

-linksource

创建每个源文件的 HTML 版本(带有行号)并从标准 HTML 文档中添加指向它们的链接。为声明在源文件中的类、接口、构造方法、方法和字段创建链接。否则,不会创建链接,例如默认构造方法和生成的类。

此选项公开包含的源文件中的所有私有实现细节,包括私有类、私有字段和私有方法的主体,而不考虑 -public-package-protected-private 选项。除非您还使用 -private 选项,否则并非所有私有类或接口都可以通过链接访问。

每个链接都出现在其声明中的标识符名称上。例如,指向 Button 类的源代码的链接将位于单词 Button 上:

public class Button extends Component implements Accessible 

Button类中getLabel方法的源代码链接在getLabel这个词上:

public String getLabel() 
--main-stylesheet file-stylesheetfile file

指定备用样式表文件的路径,该文件包含生成的文档中使用的 CSS 样式的定义。此选项可让您覆盖默认值。如果不指定该选项,javadoc 工具将创建并使用默认样式表。文件名可以是任何名称,不限于 stylesheet.css--main-stylesheet 选项是首选形式。

命令行示例:

javadoc --main-stylesheet main_stylesheet.css pkg_foo 
-nocomment
抑制整个评论正文,包括主要描述和所有标签,并且只生成声明。此选项允许您重复使用最初用于不同目的的源文件,以便您可以在新项目的早期阶段生成框架 HTML 文档。
-nodeprecated
防止在文档中生成任何已弃用的 API。这会执行 -nodeprecatedlist 选项的作用,并且它不会在文档的其余部分生成任何已弃用的 API。当您不想被弃用的代码分散注意力时,这在编写代码时很有用。
-nodeprecatedlist
防止生成包含已弃用 API 列表 (deprecated-list.html) 的文件以及导航栏中指向该页面的链接。 javadoc 工具在文档的其余部分继续生成已弃用的 API。当您的源代码不包含已弃用的 API,并且您希望使导航栏更清晰时,这很有用。
-nohelp
省略每页输出顶部导航栏中的帮助链接。
-noindex
从生成的文档中省略索引。索引是默认生成的。
-nonavbar
防止生成通常位于生成页面顶部和底部的导航栏、页眉和页脚。 -nonavbar 选项对 -bottom 选项没有影响。 -nonavbar 选项在您只对内容感兴趣而不需要导航时很有用,例如当您将文件转换为 PostScript 或 PDF 仅供打印时。
--no-platform-links
防止生成指向平台文档的链接。这些链接是默认生成的。
-noqualifier name1 , name2...

从输出中排除限定符列表。从出现类或接口名称的地方删除包名称。由于历史原因,: 可以在参数中的任何位置用作分隔符而不是 ,

以下示例省略了所有包限定符:-noqualifier all

以下示例省略了 java.langjava.io 封装限定符:-noqualifier java.lang:java.io

以下示例省略了以 javacom.sun 子包开头的包限定符,但不包括 javax: -noqualifier java.*:com.sun.*

如果由于先前的行为而出现包限定符,则可以适当缩短名称。无论是否使用 -noqualifier 选项,此规则都有效。

-nosince
从生成的文档中省略与 @since 标签关联的 Since 部分。
-notimestamp
隐藏时间戳,该时间戳隐藏在生成的 HTML 中靠近每个页面顶部的 HTML 注释中。当您想在两个源代码库上运行 javadoc 工具并获取 diff 它们之间的差异时,-notimestamp 选项很有用,因为它可以防止时间戳导致 diff(否则在每个页面上都是 diff)。时间戳包括 javadoc 工具版本号。
-notree
从生成的文档中省略类和接口层次结构页面。这些是您使用导航栏中的树按钮到达的页面。层次结构是默认生成的。
--override-methods (detail |summary )
在详细信息或摘要部分记录覆盖的方法。默认为 detail
-overview filename

指定 javadoc 工具应从 filename 指定的源文件中检索概述文档的文本,并将其放在概述页面 (overview-summary.html) 上。用文件名指定的相对路径是相对于当前工作目录的。

虽然您可以为 filename 值使用任何您想要的名称并将其放置在路径的任何位置,但通常将其命名为 overview.html 并将其放置在源代码树中包含最顶层包目录的目录中。在此位置,记录包时不需要路径,因为 -sourcepath 选项指向此文件。

  • Linux and macOS: 例如,如果 java.lang 包的源代码树是 src/classes/java/lang/ ,那么您可以将概览文件放在 src/classes/overview.html 中。

  • Windows: 例如,如果 java.lang 包的源代码树是 src\classes\java\lang\,那么您可以将概览文件放在 src\classes\overview.html

仅当您将两个或更多包名称传递给 javadoc 工具时,才会创建概览页面。概览页面的标题由-doctitle设置。

-serialwarn
为缺少的 @serial 标签生成编译时警告。默认情况下,Javadoc 不生成串行警告。使用此选项显示串行警告,这有助于正确记录默认的可序列化字段和 writeExternal 方法。
--since release (, release )*

为指定的 release 中添加或新弃用的 API 生成文档。

如果记录的源代码中元素的 javadoc 注释中的 @since 标记与作为选项参数传递的 release 匹配,则有关元素及其添加的版本的信息将包含在“新 API”页面中。

如果生成了“已弃用的 API”页面,并且已记录元素的 java.lang.Deprecated 注释的 since 元素与选项参数中的 release 匹配,则有关该元素已弃用的版本的信息将添加到“已弃用的 API”页面。

使用区分大小写的字符串比较来比较版本。

--since-label text
指定要在“新 API”页面的标题中使用的 text。这可能包含有关页面中涵盖的版本的信息,例如“2.0 版中的新 API”或“自版本 1 以来的新 API”。
--snippet-path snippetpathlist
指定用于查找外部代码段文件的搜索路径。 snippetpathlist 可以包含多个路径,方法是使用平台路径分隔符(Windows 上为 ;;其他平台上为 :。)标准 Doclet 首先在包含代码段的包中搜索 snippet-files 子目录,然后搜索给定列表中的所有目录.
-sourcetab tab-length
指定每个制表符在源代码中使用的空格数。
--spec-base-url url
指定 @spec 标记中相对 URL 的基本 URL,在生成指向任何外部规范的链接时使用。它可以是绝对 URL,也可以是相对 URL,在这种情况下,它是相对于生成的输出文件的基本目录进行评估的。默认值相当于 {@docRoot}/../specs
-splitindex
将索引文件拆分为多个文件,按字母顺序,每个字母一个文件,加上以非字母符号开头的任何索引条目的文件。
-tag name :locations :header

指定单参数自定义标签。对于拼写检查标签名称的 javadoc 工具,重要的是为源代码中存在的每个自定义标签包含一个 -tag 选项,禁用(使用 X )那些在当前运行中未输出的标签。冒号 (:) 始终是分隔符。要在标签名称中包含冒号,请使用反斜杠 (\) 将其转义。 -tag 选项以粗体形式输出标签标题 header ,在下一行之后是来自其单个参数的文本。与任何块标记类似,参数文本可以包含内联标记,这些标记也会被解释。输出类似于标准的单参数标签,例如 @return@author 标签。省略 header 值会导致 name 成为标题。 locations 是一个字符列表,指定可以在其中使用标记的声明类型。可以使用以下字符,无论是大写还是小写:

  • A:所有声明
  • C:构造函数
  • F:字段
  • M:方法
  • O :概览页面和 doc-files 子目录中的其他文档文件
  • P:包
  • S:模块
  • T:类型(类和接口)
  • X:无处:标签被禁用,将被忽略

标签在命令行上给出的顺序将用作标签在生成的输出中出现的顺序。您可以使用不带 locationsheader-tag 选项,按照命令行中给出的顺序包含标准标签。

-taglet class

指定用于为该标记生成文档的 taglet 的完全限定名称。使用 class 值的完全限定名称。此 taglet 还定义了自定义标签具有的文本参数的数量。 taglet 接受这些参数、处理它们并生成输出。

Taglet 对块或内联标签很有用。它们可以有任意数量的参数并实现自定义行为,例如将文本加粗、格式化项目符号、将文本写入文件或启动其他进程。 Taglets 只能确定标签应该出现在哪里以及以什么形式出现。所有其他决定均由 doclet 做出。 taglet 不能做诸如从包含的类列表中删除类名之类的事情。但是,它可以执行副作用,例如将标记的文本打印到文件或触发另一个进程。使用 -tagletpath 选项指定 taglet 的路径。以下示例在生成的页面中的 Parameters 之后和 Throws 之前插入 To Do taglet。

-taglet com.sun.tools.doclets.ToDoTaglet
-tagletpath /home/taglets
-tag return
-tag param
-tag todo
-tag throws
-tag see 

或者,您可以使用 -taglet 选项代替其 -tag 选项,但这可能难以阅读。

-tagletpath tagletpathlist
指定用于查找 taglet 类文件的搜索路径。 tagletpathlist 可以包含多个路径,通过使用平台路径分隔符(在 Windows 上为 ;;在其他平台上为 :。) javadoc 工具搜索指定路径的所有子目录。
-top html-code
指定要放置在每个输出文件顶部的文本。
-use
创建类和包使用页面。为每个记录的类和包包括一个使用页面。该页面描述了哪些包、类、方法、构造函数和字段使用指定类或包的任何 API。给定类 C,使用类 C 的事物将包括 C 的子类、声明为 C 的字段、返回 C 的方法以及具有 C 类型参数的方法和构造函数。例如,您可以查看 String 类型的使用页面。因为 java.awt.Font 类中的 getName 方法返回类型 String,所以 getName 方法使用 String,因此 getName 方法出现在 String 的使用页面上。本文档仅记录 API 的使用,不记录实现。当方法在其实现中使用 String,但不将字符串作为参数或返回字符串时,这不被视为对 String 的使用。要访问生成的使用页面,请转到类或包并单击Use link 在导航栏中。
-version
在生成的文档中包含版本文本。默认情况下省略此文本。要找出您使用的 javadoc 工具的版本,请使用 -J-version 选项。
-windowtitle title
指定要放置在 HTML <title> 标记中的标题。 title 标记中指定的文本出现在窗口标题和某人为此页面创建的任何浏览器书签(收藏夹)中。此标题不应包含任何 HTML 标记,因为浏览器不会正确解释它们。在 title 标记内的任何内部引号上使用转义字符。如果省略 -windowtitle 选项,则 javadoc 工具会将 -doctitle 选项的值用于 -windowtitle 选项。例如,javadoc -windowtitle "My Library" com.mypackage

标准 Doclet 的额外选项

以下是标准 Doclet 提供的附加选项,如有更改,恕不另行通知。其他选项不太常用或被视为高级选项。

--date date-and-time

ISO 8601 格式指定用于为生成的页面添加时间戳的值。指定的值必须在当前日期和时间的 10 年内。同时指定 -notimestamp--date 是错误的。使用特定值意味着生成的文档可以是 可复制的构建 的一部分。如果未给出该选项,则默认值为当前日期和时间。例如:

javadoc --date 2022-02-01T17:41:59-08:00 mypackage 
--legal-notices (default |none |directory )
指定从中将法律文件复制到生成的文档的位置。如果该选项未指定或与值一起使用 default ,则文件将从默认位置复制。如果参数与值一起使用 none ,则不会复制任何文件。每个其他参数都被解释为从中复制合法文件的目录。
--no-frames
此选项是空操作,只是为了向后兼容而保留。
-Xdoclint

启用对文档注释中问题的建议检查。

默认情况下,启用 -Xdoclint 选项。使用选项 -Xdoclint:none 禁用它。

有关详细信息,请参阅 DocLint

-Xdoclint: flag ,flag ,...

启用或禁用针对文档注释中不同类型问题的特定检查。

每个 flag 可以是 allnone[-] group 之一,其中 group 具有以下值之一: accessibilityhtmlmissingreferencesyntax 。有关这些值的更多详细信息,请参阅 DocLint 组

当指定两个或多个标志时,您可以使用单个 -Xdoclint:... 选项,列出所有需要的标志,或者您可以使用多个选项,在每个选项中提供一个或多个标志。例如,使用以下任一命令检查文件 MyFile.java 中的 HTML、语法和可访问性问题。

javadoc -Xdoclint:html -Xdoclint:syntax -Xdoclint:accessibility MyFile.java
javadoc -Xdoclint:html,syntax,accessibility MyFile.java 

以下示例说明了如何更改 DocLint 报告的内容:

  • -Xdoclint:none --- 禁用所有检查
  • -Xdoclint: group --- 启用 group 检查
  • -Xdoclint:all --- 启用所有检查组
  • -Xdoclint:all,- group --- 启用除 group 检查之外的所有检查

有关详细信息,请参阅 DocLint

-Xdoclint/package: [- ]packages

启用或禁用特定包中的检查。 packages 是包说明符的逗号分隔列表。包说明符是包的限定名称或包名称前缀后跟 * ,它扩展到给定包的所有子包。在包说明符前加上 - 以禁用对指定包的检查。

有关详细信息,请参阅 DocLint

-Xdocrootparent url
将文档注释中所有 @docRoot 项后跟 /.. 替换为 url

DocLint

DocLint 提供检查文档注释中可能存在的问题的能力。问题可能会报告为警告或错误,具体取决于它们的严重程度。例如,缺少注释可能是糟糕的风格,值得警告,但指向未知 Java 声明的链接更严重,值得出错。问题被组织到 groups 中,选项可用于启用或禁用一个或多个组中的消息。在源代码中,一个或多个组中的消息可以通过使用 @SuppressWarnings 注释来 压制

javadoc 调用时,默认情况下 DocLint 检查生成的文档中使用的所有注释。因此,它依赖于其他命令行选项来确定将包含哪些声明以及哪些相应的文档注释。 Note: 这可能意味着,如果成员需要在生成的 Serialized Forms 页面中记录,甚至还会检查对可序列化类的某些私有成员的注释。

相反,当从 javac 调用 DocLint 时,DocLint 仅依赖于各种 -Xdoclint... 选项来确定要检查哪些文档注释。

DocLint 不会尝试修复无效输入,它只是报告它。

Note: DocLint 不保证这些检查的完整性。特别是,它不是一个完整的 HTML 合规性检查器。目标是以方便的方式报告常见错误。

团体

DocLint 执行的检查被组织成组。可以使用命令行选项启用或禁用每组中的警告和错误,或使用@SuppressWarnings 注释抑制。

这些组如下:

抑制消息

DocLint 检查并识别可能出现在 @SuppressWarnings 注释的参数中的两个字符串。

其中 LIST 是一个或多个 accessibilityhtmlmissingsyntaxreference 的逗号分隔列表。

LIST 中的名称与 javacjavadoc 的命令行 -Xdoclint 选项支持的 group 名称相同。 (这与 javac -Xlint 选项和 @SuppressWarnings 支持的相应名称所遵循的约定相同。)

LIST 中的名称可以等效地在注释的单独参数中指定。例如,以下是等效的:

当 DocLint 在文档注释中检测到问题时,它会检查关联声明和所有词法封闭声明中是否存在 @SuppressWarnings。如果发现任何此类注解包含简单字符串 doclint 或更长形式的 doclint:LIST,其中 LIST 包含该问题的组名称,则该问题将被忽略。

Note:@SuppressWarnings 的其他用途一样,在模块或包声明上使用注解只会影响该声明;它不会影响其他源文件中模块或包的内容。

与问题相关的所有消息都被适当的 @SuppressWarnings 注释所抑制:这包括错误和警告。

Note: 只能发送 suppress 消息。如果在顶级声明上给出了 @SuppressWarnings("doclint") 注释,则该声明的所有 DocLint 消息和任何包含的声明都将被抑制;无法针对随附声明中的问题有选择地重新启用消息。

与下游验证工具的比较

DocLint 是 javacjavadoc 中内置的实用程序,用于检查源文件中文档注释的内容。相反,下游验证工具可用于验证 javadoc 和 Standard Doclet 从这些文档注释生成的输出。

尽管在功能上有一些重叠,但这两种机制是不同的,各有优缺点。