Contents
   
What the Standard Doclet Is
The standard doclet is the doclet provided by 
SunTM that produces Javadoc's default 
HTML-formatted API output.  The 
API documentation for the 
JavaTM platform in this 
SDK documentation is an example of 
the standard doclet's output. Javadoc uses the standard doclet if 
no other doclet is specified using Javadoc's -doclet option 
on the command line.
One reason to look at the standard doclet is 
that it serves as a good example of the use of much of the doclet  
API. A second reason is that by seeing how the standard doclet produces 
the default HTML output, it will be easier for you to modify the standard 
doclet to make your own doclet for generating custom API documentation.
Classes in the Standard Doclet
The standard doclet is composed of 
the classes in the com.sun.tools.doclets, 
com.sun.tools.doclets.standard and 
com.sun.tools.doclets.standard.tags packages. 
Classes in the standard doclet that play key roles in generating 
the default HTML output are summarized here:
com.sun.tools.doclets
- HtmlWriter - This class contains APIs for writing the various 
HTML tags needed for generating any output in HTML form.
 - HtmlDocWriter - This class extends HtmlWriter, and contains 
additional HTML-related APIs for producing the specialized hyperlinks 
used in the default HTML output, including links in the headers and 
footers of the HTML pages.
 - Taglet - An interface that represents a class used to format the 
ouput of a tag. You can develop a Taglet to format the output of
your custom tags. For more information about Taglets, please see the   
taglet overview.
 - TagletManager - This class manages the Taglets being used by 
the doclet.
It has methods for registering Taglets, retrieving Taglets and
checking whether or not a tag is known by the TagletManager
(used for error checking).  The TagletManager also checks for tags that
are used in the wrong places.  For example, a warning message is printed
if a @param tag is used in class documentation because that tag should only
be used in constructor and method documentation.
 
com.sun.tools.doclets.standard
- Standard - This class contains the start method and 
hence serves as the entry point for the standard doclet. It orchestrates 
the generation of the HTML API files for the packages and classes upon 
which javadoc is operating.
 - PackageIndexWriter - This class generates the overview-summary.html 
file that lists all packages specified on the javadoc command line. As an 
example, see the 
overview-summary.html file in the API documentation for 
this Java Development Kit.
 - PackageIndexFrameWriter - This generates the 
overview-frame.html file used for displaying the list of package 
links in the upper-left frame in the frame-formatted default output. See 
the overview-frame.html 
file in the API documentation of this release of the SDK documentation.
 - PackageFrameWriter - This generates the 
package-frame.html file that lists the interfaces and classes in a 
given package for displaying in the lower-left frame of the frame-formatted 
default output. As an example of this type of page, see 
the package-frame.html 
file for java.awt in the API documentation of this release of the 
platform API documentation.
 - FrameOutputWriter - This generates the index.html file 
used for presenting the frame-formated "cover page" of the API 
documentation.  See the 
index.html file from the 
platform API documentation as an example.
 - PackageWriter - This generates the package-summary.html 
files that list the interfaces and classes for a given package. For an 
example of this type of page, see the 
package-summary.html 
page for java.lang in the API documentation of this release.
 - ClassWriter - This generates the HTML API documentation for 
each individual interface and class.  For an example from the Java 2 Platform  
API documentation, see Font.html.
 - SingleIndexWriter - This generates the single index file of 
class members that the standard doclet produces when the 
-splitindex option is not used.
 - SplitIndexWriter - This generates the mutliple index files for the 
class members that is generated when the Javadoc runs the standard doclet 
with the -splitindex command-line option. The files are numbered such as 
index-1.html.
 - TreeWriter - This class generates the overview-tree.html file 
that lists the Class Hierarchy for the classes upon which the standard doclet 
operates. For an example from the Java 2 Platform API documentation, 
see overview-tree.html.
 - DeprecatedListWriter - This generates the file 
deprecatedlist.html which lists deprecated APIs. As an example, 
see the deprecated-list.html 
file from the API documentation in this release.
 - ClassUseMapper, ClassUseWriter, and PackageUseWriter - 
These classes generate the "Use" files for classes and packages. Click the 
"Use" link in the navigation bar to go to a class or package "use" page. 
Examples of such pages are those for class 
Character and 
package java.lang.
 - PackageListWriter 
- generates the package-list text file that gets placed in the top-level 
directory of the API documetation. This file is required for use with 
standard doclet's -link command-line option. Standard doclet 
class Extern also plays 
a role in making the -link option work. See the Javadoc 
reference pages ([Windows] [Solaris]) for details about this option.
 - Group - This class handles
the grouping of packages in one or more tables on the 
overview-summary.html page. 
It supports the standard doclet's -group command-line option. See the 
Javadoc reference pages ([Windows] [Solaris]) for details about this option.
 
com.sun.tools.doclets.standard.tags
- AbstractExecutableMemberTaglet - This is an abstract Taglet that
formats the output for a tag used in documentation for executable members.
 - AbstractInlineTaglet - This is an abstract Taglet that formats
the output for an inline tag. You should subclass this abstract class if you
would like to create your own custom inline tag.
 
 - DocRootTaglet - A taglet that formats the output for {@docRoot}.
 - InheritDocTaglet - A taglet that formats the output for {@inheritDoc}.
 - ParamTaglet - A taglet that formats the output for @param.
 - ReturnTaglet - A taglet that formats the output for @return.
 - SeeTaglet - A taglet that formats the output for @see.
 
 - SimpleTaglet - A taglet that formats the output for single 
argument tags such as @author and @version.
 
 - ThrowsTaglet - A taglet that formats the output for @throws.
 
 - ValueTaglet - A taglet that formats the output for {@value}.
 
For more information about Taglets, please see the
taglet overview.
Running the Standard Doclet from the Command Line
The standard doclet is invoked by default when no other doclet is 
specified with the -doclet tag on the command line.  For example, 
running
% javadoc myPackage
will use the standard doclet to produce the default-style HTML API 
documentation for myPackage. Running javadoc without the 
-doclet option is equivalent to running javadoc using the 
-doclet option to invoke the standard doclet. That is, 
the above command is equivalent to 
% javadoc -docletpath /home/user/j2sdk1.4.0/lib/tools.jar \
  -doclet com.sun.tools.doclets.standard.Standard \
  myPackage
Running the Standard Doclet Programmatically
The Javadoc tool has a programmatic interface with public methods 
for invoking the Javadoc tool from another program written in 
the Java language.  These methods are located in class 
com.sun.tools.javadoc.Main in lib/tools.jar.
An example is given below.
The disadvantages of calling main are: 
(1) It can only be called once per run -- for 1.2.x or 1.3.x, 
use java.lang.Runtime.exec("javadoc ...")  
if more than one call is needed,
(2) it exits using Systme.exit(),
which exits the entire program, and
(3) an exit code is not returned.
public static void main(java.lang.String[] args)
  - Command line interface.
  - Parameters:
      
  args - The command line parameters.
The execute method overcomes all the disadvantages of  
main.
public static int execute(java.lang.String[] args)
  - Programmatic interface.
  
- Parameters:
      
  args - The command line parameters.
  - Returns:
      
 - The return code.
 
public static int execute(java.lang.String programName,
                          java.lang.String[] args)
  - Programmatic interface.
  
- Parameters:
         
  programName - Name of the program (for error messages).
         args - The command line parameters.
  - Returns:
         
 - The return code.
 
public static int execute(java.lang.String programName,
                          java.lang.String defaultDocletClassName,
                          java.lang.String[] args)
  - Programmatic interface.
  
- Parameters:
         
  programName - Name of the program (for error messages).
         defaultDocletClassName - Fully qualified class name.
         args - The command line parameters.
  - Returns:
         
 - The return code.
 
public static int execute(java.lang.String programName,
                          java.io.PrintWriter errWriter,
                          java.io.PrintWriter warnWriter,
                          java.io.PrintWriter noticeWriter,
                          java.lang.String defaultDocletClassName,
                          java.lang.String[] args)
  - Programmatic interface.
  
- Parameters:
         
  programName - Name of the program (for error messages).
         errWriter - PrintWriter to receive error messages.
         warnWriter - PrintWriter to receive error messages.
         noticeWriter - PrintWriter to receive error messages.
         defaultDocletClassName - Fully qualified class name.
         args - The command line parameters.
  - Returns:
         
 - The return code.
 
Example
With classpath set to lib/tools.jar in the Java 2 SDK,
pass in each option and argument as a separate string:
com.sun.tools.javadoc.Main.execute(new String[] {"-d", "docs", "-sourcepath", "/home/usr/src", "p1", "p2"});
The Source for the Standard Doclet
You can download the source code for the standard doclet as part of the 
Java 2 SDK at:
The source files are located in the directory 
src/share/classes/com/sun/tools/doclets.