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:
--add-modules
-bootclasspath
--class-path
、-classpath
或-cp
--enable-preview
-encoding
-extdirs
--limit-modules
--module
--module-path
或-p
--module-source-path
--release
--source
或-source
--source-path
或-sourcepath
--system
--upgrade-module-path
以下选项是核心 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.io
、java.util
和java.math
(以及其他),但将排除以java.net
和java.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
是可选的,因为它仅设置初始内存的大小,这在您知道所需的最小内存量时很有用。J
和flag
之间没有空格。使用
-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 可以是
api
或all
。 --show-packages
value-
指定记录了哪些模块包,其中 value 可以是
exported
或all
包。 --show-types
value-
指定记录哪些类型(类、接口等),其中 value 可以是以下任何一种:
public
--- 仅显示公共类型protected
--- 显示公共和受保护类型;这是默认值package
--- 显示公共、受保护和包类型private
--- 显示所有类型
-subpackages
subpkglist-
从指定包中的源文件生成文档,并在其子包中递归生成文档。当向源代码中添加新的子包时,此选项很有用,因为它们是自动包含的。每个包参数都是不需要包含源文件的任何顶级子包(例如
java
)或完全限定的包(例如javax.swing
)。在所有操作系统上,参数均以冒号分隔。不允许使用通配符。使用-sourcepath
指定在何处查找包。此选项不处理源代码树中但不属于包的源文件。例如,以下命令为名为
java
和javax.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:
--add-exports
--add-reads
--patch-module
-Xmaxerrs
-Xmaxwarns
标准 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
文本。 -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
。由于历史原因,:
可以在参数中的任何位置用作分隔符而不是,
。 -
指定要放置在每个输出文件底部的页脚文本。
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.html
。javadoc
工具会相应地调整导航栏中的链接。例如: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-list
或element-list
文件必须位于此 url 目录中(否则,请使用-linkoffline
选项)。Note:
package-list
和element-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-list
或element-list
文件不可访问或不存在于 URL 位置,但存在于不同的位置并且可以由package-list
或element-list
文件(通常是本地)指定。
Note:
package-list
和element-list
文件由javadoc
工具在生成API 文档时生成,用户不应修改。如果 url1 只能在万维网上访问,那么
-linkoffline
选项将消除javadoc
工具必须具有网络连接才能生成文档的限制。-linkoffline
选项的另一个用途是作为更新文档的解决方法。在对一整套包或模块运行javadoc
工具后,您可以对较小的一组已更改的包或模块再次运行javadoc
工具,以便可以将更新的文件插入回原始集中。例如,
-linkoffline
选项有两个参数。第一个用于将字符串嵌入到<a href>
链接中,第二个告诉javadoc
工具在哪里可以找到package-list
或element-list
文件。url1 或 url2 值是包含您要链接到的外部
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
选项对-bottom
选项没有影响。-nonavbar
选项在您只对内容感兴趣而不需要导航时很有用,例如当您将文件转换为 PostScript 或 PDF 仅供打印时。 --no-platform-links
- 防止生成指向平台文档的链接。这些链接是默认生成的。
-noqualifier
name1,
name2...-
从输出中排除限定符列表。从出现类或接口名称的地方删除包名称。由于历史原因,
:
可以在参数中的任何位置用作分隔符而不是,
。以下示例省略了所有包限定符:
-noqualifier all
。以下示例省略了
java.lang
和java.io
封装限定符:-noqualifier java.lang:java.io
。以下示例省略了以
java
和com.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
:无处:标签被禁用,将被忽略
标签在命令行上给出的顺序将用作标签在生成的输出中出现的顺序。您可以使用不带 locations 或 header 的
-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 可以是
all
、none
或[-]
group 之一,其中 group 具有以下值之一:accessibility
、html
、missing
、reference
、syntax
。有关这些值的更多详细信息,请参阅 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
注释抑制。
这些组如下:
accessibility
--- 检查与可访问性相关的问题。
例如,<img>
元素中未指定alt
属性,或者<table>
元素中未指定标题或摘要属性。如果下游验证工具可能会报告
javadoc
生成的文件中的错误,则问题将报告为错误。如需参考,请参阅 网页内容无障碍指南 。
html
--- 检测常见的高级 HTML 问题。
例如,将块元素放在行内元素中,或者不关闭需要结束标记的元素。如果下游验证工具可能会报告
javadoc
生成的文件中的错误,则问题将报告为错误。如需参考,请参阅 HTML 生活标准 。
missing
--- 检查缺少的文档注释或标签。
例如,类声明缺少注释,或者方法声明的注释中缺少@param
或@return
标记。与丢失项目相关的问题通常被报告为警告,因为它们不太可能被下游验证工具报告为错误,这些工具可用于检查
javadoc
生成的输出。reference
--- 检查与文档注释标记中对 Java API 元素的引用相关的问题。
例如,无法找到@see
或{@link ...}
中的引用,或者为@param
或@throws
提供了错误的名称。问题通常被报告为错误,因为虽然问题可能不会导致生成的文件出现问题,但作者很可能犯了一个错误,导致文档不正确或意外。
syntax
--- 检查文档注释中的低级句法问题。
例如,未转义的尖括号(<
和>
)和符号(&
)以及无效的文档注释标签。问题通常被报告为错误,因为这些问题可能会导致文档不正确或意外。
抑制消息
DocLint 检查并识别可能出现在 @SuppressWarnings
注释的参数中的两个字符串。
doclint
doclint:
LIST
其中 LIST 是一个或多个 accessibility
、 html
、 missing
、 syntax
、 reference
的逗号分隔列表。
LIST 中的名称与 javac
和 javadoc
的命令行 -Xdoclint
选项支持的 group 名称相同。 (这与 javac
-Xlint
选项和 @SuppressWarnings
支持的相应名称所遵循的约定相同。)
LIST 中的名称可以等效地在注释的单独参数中指定。例如,以下是等效的:
@SuppressWarnings("doclint:accessibility,missing")
@SuppressWarnings("doclint:accessibility", "doclint:missing")
当 DocLint 在文档注释中检测到问题时,它会检查关联声明和所有词法封闭声明中是否存在 @SuppressWarnings
。如果发现任何此类注解包含简单字符串 doclint
或更长形式的 doclint:LIST
,其中 LIST 包含该问题的组名称,则该问题将被忽略。
Note: 与 @SuppressWarnings
的其他用途一样,在模块或包声明上使用注解只会影响该声明;它不会影响其他源文件中模块或包的内容。
与问题相关的所有消息都被适当的 @SuppressWarnings
注释所抑制:这包括错误和警告。
Note: 只能发送 suppress 消息。如果在顶级声明上给出了 @SuppressWarnings("doclint")
注释,则该声明的所有 DocLint 消息和任何包含的声明都将被抑制;无法针对随附声明中的问题有选择地重新启用消息。
与下游验证工具的比较
DocLint 是 javac
和 javadoc
中内置的实用程序,用于检查源文件中文档注释的内容。相反,下游验证工具可用于验证 javadoc
和 Standard Doclet 从这些文档注释生成的输出。
尽管在功能上有一些重叠,但这两种机制是不同的,各有优缺点。
下游验证工具可以检查任何生成的文档的最终结果,正如最终用户所看到的那样。这包括来自所有来源的内容,包括文档注释、标准 Doclet 本身、用户提供的 taglet 以及通过命令行选项提供的内容。因为这些工具正在分析完整的 HTML 页面,所以它们可以比 DocLint 进行更全面的检查。但是,当在生成的页面中发现问题时,可能更难准确地追踪构建管道中需要修复问题的位置。
DocLint 检查源文件中文档注释的内容。这使得识别可能发现的任何问题的确切位置变得非常容易。 DocLint 还可以检测下游工具无法检测到的文档注释中的一些语义错误,例如缺少注释、在返回
void
的方法中使用@return
标记,或使用@param
标记描述不存在的参数。但就其性质而言,DocLint 无法报告诸如丢失链接、用户提供的自定义 taglet 中的错误或标准 Doclet 本身中的问题等问题。它还不能可靠地检测文档注释中的内容在文档注释中的内容与自定义标签生成的内容之间的边界处的错误。