Javadoc使用方法

最早接触Javadoc是上Java课的时候听老师介绍的,不过说来惭愧,一直都没有认真看过,通常都是直接在IDE里面调用生成完事。这就体现了两个问题:1、对代码的注释不注重;2、没有钻研精神。

愈发地感叹Linux的命令行的功能强大了,以及于有时在Windows的CMD窗口中还不时输入ls -_- 。话说回来,Windows下现在的tab补全功能也基本上实现了,有时还是离不开命令行的:)

闲话不多说了,先加上Javadoc的帮助文档,运行javadoc -help即可得到如下内容

用法:javadoc [选项] [软件包名称] [源文件] [@file]
-overview <文件>          读取 HTML 文件的概述文档
-public                   仅显示公共类和成员
-protected                显示受保护/公共类和成员(默认)
-package                  显示软件包/受保护/公共类和成员
-private                  显示所有类和成员
-help                     显示命令行选项并退出
-doclet <类>              通过替代 doclet 生成输出
-docletpath <路径>        指定查找 doclet 类文件的位置
-sourcepath <路径列表>     指定查找源文件的位置
-classpath <路径列表>      指定查找用户类文件的位置
-exclude <软件包列表>      指定要排除的软件包的列表
-subpackages <子软件包列表> 指定要递归装入的子软件包
-breakiterator            使用 BreakIterator 计算第 1 句
-bootclasspath <路径列表>  覆盖引导类加载器所装入的
                          类文件的位置
-source <版本>            提供与指定版本的源兼容性
-extdirs <目录列表>       覆盖安装的扩展目录的位置
-verbose                  输出有关 Javadoc 正在执行的操作的消息
-locale <名称>            要使用的语言环境,例如 en_US 或 en_US_WIN
-encoding <名称>           源文件编码名称
-quiet                    不显示状态消息
-J<标志>                   直接将 <标志> 传递给运行时系统

通过标准 doclet 提供:
-d <directory>                    输出文件的目标目录
-use                              创建类和包用法页面
-version                          包含 @version 段
-author                           包含 @author 段
-docfilessubdirs                  递归复制文档文件子目录
-splitindex                       将索引分为每个字母对应一个文件
-windowtitle <text>               文档的浏览器窗口标题
-doctitle <html-code>             包含概述页面的标题
-header <html-code>               包含每个页面的页眉文本
-footer <html-code>               包含每个页面的页脚文本
-top    <html-code>               包含每个页面的顶部文本
-bottom <html-code>               包含每个页面的底部文本
-link <url>                       创建指向位于 <url> 的 javadoc 输出的链接
-linkoffline <url> <url2>         利用位于 <url2> 的包列表链接至位于 <url> 的文档
-excludedocfilessubdir <name1>:   ..排除具有给定名称的所有文档文件子目录。
-group <name> <p1>:<p2>           ..在概述页面中,将指定的包分组
-nocomment                        不生成描述和标记,只生成声明。
-nodeprecated                     不包含 @deprecated 信息
-noqualifier <name1>:<name2>:     ...输出中不包括指定限定符的列表。
-nosince                          不包含 @since 信息
-notimestamp                      不包含隐藏时间戳
-nodeprecatedlist                 不生成已过时的列表
-notree                           不生成类分层结构
-noindex                          不生成索引
-nohelp                           不生成帮助链接
-nonavbar                         不生成导航栏
-serialwarn                       生成有关 @serial 标记的警告
-tag <name>:<locations>:<header>  指定单个参数自定义标记
-taglet                           要注册的 Taglet 的全限定名称
-tagletpath                       Taglet 的路径
-charset <charset>                用于跨平台查看生成的文档的字符集。
-helpfile <file>                  包含帮助链接所链接到的文件
-linksource                       以 HTML 格式生成源文件
-sourcetab <tab length>           指定源中每个制表符占据的空格数
-keywords                         使包、类和成员信息附带 HTML 元标记
-stylesheetfile <path>            用于更改生成文档的样式的文件
-docencoding <name>               输出编码名称

实际上平时需要加参数的时候不多,比较常用的有如下几个:
-locale <名称> 要使用的语言环境,例如 en_US 或 en_US_WIN(可以决定生成的框架是否是英文,这个必须为参数的第一项)
-charset 用于跨平台查看生成的文档的字符集。(决定HTML源码中声明字符集的标签内容)
-encoding <名称> 源文件编码名称(决定javadoc把Java源码文件当做何种字符集)
-docencoding 输出编码名称(决定生成的HTML文档的字符集)
因此,如果要在中文系统下输出英文界面UTF8编码的Javadoc文档,就需要设置成-locale en_US -encoding UTF-8即可。
不过由于Eclipse中不支持-locale选项,会提示出错”选项 -locale 必须为第一个选项。”这是因为Eclipse在这些自定义的参数之前还加上了其它的参数,你又不能改变这一点。还好,可以在生成文档的窗口里面设置vm的参数:
-J-Duser.language=en_US
而Extra Javadoc options写上:

-encoding UTF-8
-charset UTF-8
-docencoding UTF-8

如下图,不过里面的JRE版本设置暂时不清楚有什么区别
Javadoc设置

最后多说一句:要使用Javadoc生成文档,并不要求你的Java代码是可编译的,唯一要求的是存在.java文件。这一点很好,因为它体现了如下思想:我不赞成你的代码包含着错误,但我捍卫你生成代码注释的权力~

参考资料:
http://yangl.javaeye.com/blog/274091
http://www.ideawu.net/blog/?p=387

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: