IntelliJ IDEA 12.1.6,本身提供了很好的 JavaDoc 生成功能,以及标准 JavaDoc 注释转换功能,其实质是在代码编写过程中,按照标准 JavaDoc 的注释要求,为需要暴露给使用者的类、方法以及其他成员编写注释。然后使用 IDEA 的功能自动调用 javadoc.exe(JDK 自带的工具)根据源代码中的注释内容自动生成 JavaDoc 文档(超文本格式)。这里有几点倒是要特别注意一下:

  1. IDEA 的 JavaDoc 生成功能在菜单 Tools->Generate JavaDoc 项里面。

  2. 点击上述菜单项后,会出现生成 JavaDoc 的对话框,一般的选项都很直观,不必细说。但是要注意生成 JavaDoc 的源代码对象的选择,一般以模块(Module)为主,必要时可以单独选择必要的 Java 源代码文件,不推荐以 PRoject 为 JavaDoc 生成的源范围。

  3. 里面有一个 Locale 可选填项,表示的是需要生成的 JavaDoc 以何种语言版本展示,根据 javadoc.exe 的帮助说明,这其实对应的就是 javadoc.exe 的 -locale 参数,如果不填,默认可能是英文或者是当前操作系统的语言,既然是国人,建议在此填写 zh_CN,这样生成的 JavaDoc 就是中文版本的,当然指的是 JavaDoc 的框架中各种通用的固定显示区域都是中文的。你自己编写的注释转换的内容还是根据你注释的内容来。

  4. 还有一个“Other command line arguments:”可选填项,非常重要,是填写直接向 javadoc.exe 传递的参数内容。因为有一些重要的设置,只能通过直接参数形式向 javadoc.exe 传递。这里必须要填写如下参数:

    -encoding UTF-8 -charset UTF-8 -windowtitle "你的文档在浏览器窗口标题栏显示的内容" -link http://docs.Oracle.com/javase/7/docs/api

  5. 第一个参数 -encoding UTF-8 表示你的源代码(含有符合 JavaDoc 标准的注释)是基于 UTF-8 编码的,以免处理过程中出现中文等非英语字符乱码;第二个参数 -charset UTF-8 表示在处理并生成 JavaDoc 超文本时使用的字符集也是以 UTF-8 为编码,目前所有浏览器都支持 UTF-8,这样最具有通用性,支持中文非常好;第三个参数 -windowtitle 表示生成的 JavaDoc 超文本在浏览器中打开时,浏览器窗口标题栏显示的文字内容;第四个参数 -link 很重要,它表示你生成的 JavaDoc 中涉及到很多对其他外部 Java 类的引用,是使用全限定名称还是带有超链接的短名称,举个例子,我创建了一个方法 public void func(String arg),这个方法在生成 JavaDoc 时如果不指定 -link 参数,则 JavaDoc 中对该方法的表述就会自动变为 public void func(java.lang.String arg),因为 String 这个类对我自己实现的类来讲就是外部引用的类,虽然它是 Java 标准库的类。如果指定了 -link http://docs.oracle.com/javase/7/docs/api 参数,则 javadoc.exe 在生成 JavaDoc 时,会使用 String 这样的短名称而非全限定名称 java.lang.String,同时自动为 String 短名称生成一个超链接,指向官方 JavaSE 标准文档 http://docs.oracle.com/javase/7/docs/api 中对 String 类的详细文档地址。-link 实质上是告诉 javadoc.exe 根据提供的外部引用类的 JavaDoc 地址去找一个叫 package-list 的文本文件,在这个文本文件中包含了所有外部引用类的全限定名称,因此生成的新 JavaDoc 不必使用外部引用类的全限定名,只需要使用短名称,同时可以自动创建指向其外部引用 JavaDoc 中的详细文档超链接。每个 JavaDoc 都会在根目录下有一个 package-list 文件,包括我们自己生成的 JavaDoc。

  JavaDoc 生成完毕,即可在其根目录下找到 index.html 文件,打开它就可以看到我们自己的标准 JavaDoc API 文档啦。

最新文章

  1. mysql 添加用户并授权
  2. Rebar:Erlang构建工具
  3. 翻译 Tri-Ace:在Shader里近似渲染公式
  4. Android设计模式系列--模板方法模式
  5. Maximum Product Subarray——LeetCode
  6. perl5 第十三章 Perl的面向对象编程
  7. Appium Server 传递Android参数
  8. SQL点滴34—SQL中的大小写
  9. c++(基数排序)
  10. ATCA构架
  11. python已安装了DNS处理模块,执行时却报错ImportError
  12. vue2.0 带头冲锋(打包时,小心萝卜坑)
  13. spring AOP的两种配置方式
  14. python实现简单的一个刷票点赞功能
  15. POI 生成、导出Excel(包含多个sheet)带 图片
  16. 关于python-flask框架中的几个文件的理解
  17. Android代码书写规范
  18. 【架构】技术-工具-平台-语言&框架
  19. HOJ 2156 &POJ 2978 Colored stones(线性动规)
  20. ccf数字排序

热门文章

  1. HTML5结合CSS的三种方法+结合JS的三种方法
  2. ajax异步的问题,(主要解决有时候前台打断点和不打断点结果不一样的问题,一般情况下是存在异步的问题)
  3. 洛谷P2444 [POI2000]病毒(AC自动机,DFS求环)
  4. 【HNOI2004】宠物收养所(splay)
  5. MySQ备份常见问题
  6. Java中高级面试题
  7. 关于Mybatis的java.lang.UnsupportedOperationException异常处理
  8. 伯克利推出世界最快的KVS数据库Anna:秒杀Redis和Cassandra
  9. 为eclipse安装subclipse(SVN插件)
  10. 平衡树(Splay)模板