com.sun.javadoc (Java SE 11 & JDK 11 ) (original) (raw)
Note: The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. For more information, see the Migration Guide in the documentation for that package.
The Doclet API (also called the Javadoc API) provides a mechanism for clients to inspect the source-level structure of programs and libraries, including javadoc comments embedded in the source. This is useful for documentation, program checking, automatic code generation and many other tools.
Doclets are invoked by javadoc and use this API to write out program information to files. For example, the standard doclet is called by default and writes out documentation to HTML files.
The invocation is defined by the abstract Doclet class -- the entry point is the start method:
public static boolean **start**(RootDoc root)
The RootDoc instance holds the root of the program structure information. From this root all other program structure information can be extracted.
Terminology
When calling javadoc, you pass in package names and source file names -- these are called the specified packages and classes. You also pass in Javadoc options; the access control Javadoc options (-public
, -protected
, -package
, and -private
) filter program elements, producing a result set, called the included set, or "documented" set. (The unfiltered set is also available throughallClasses(false).)
Throughout this API, the term class is normally a shorthand for "class or interface", as in: ClassDoc,allClasses(), andfindClass(String). In only a couple of other places, it means "class, as opposed to interface", as in: Doc.isClass(). In the second sense, this API calls out four kinds of classes:ordinary classes,enums,errors andexceptions. Throughout the API, the detailed description of each program element describes explicitly which meaning is being used.
A qualified class or interface name is one that has its package name prepended to it, such as java.lang.String
. A non-qualified name has no package name, such as String
.
Example
The following is an example doclet that displays information in the @param
tags of the processed classes:
import com.sun.javadoc.*;
public class ListParams extends Doclet {
public static boolean start(RootDoc root) {
ClassDoc[] classes = root.classes();
for (int i = 0; i < classes.length; ++i) {
ClassDoc cd = classes[i];
printMembers(cd.constructors());
printMembers(cd.methods());
}
return true;
}
static void printMembers(ExecutableMemberDoc[] mems) {
for (int i = 0; i < mems.length; ++i) {
ParamTag[] params = mems[i].paramTags();
System.out.println(mems[i].qualifiedName());
for (int j = 0; j < params.length; ++j) {
System.out.println(" " + params[j].parameterName()
+ " - " + params[j].parameterComment());
}
}
}
}
Interfaces and methods from the Javadoc API are marked inred.Doclet is an abstract class that specifies the invocation interface for doclets,Doclet holds class or interface information,ExecutableMemberDoc is a superinterface of MethodDoc andConstructorDoc, and ParamTag holds information from "@param
" tags.
This doclet when invoked with a command line like:
javadoc -doclet ListParams -sourcepath <source-location> java.util
producing output like:
...
java.util.ArrayList.add
index - index at which the specified element is to be inserted.
element - element to be inserted.
java.util.ArrayList.remove
index - the index of the element to removed.
...
See Also:
- Interface Summary
Interface Description AnnotatedType Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. AnnotationDesc Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. AnnotationDesc.ElementValuePair Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. AnnotationTypeDoc Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. AnnotationTypeElementDoc Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. AnnotationValue Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. ClassDoc Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. ConstructorDoc Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. Doc Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. DocErrorReporter Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. ExecutableMemberDoc Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. FieldDoc Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. MemberDoc Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. MethodDoc Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. PackageDoc Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. Parameter Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. ParameterizedType Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. ParamTag Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. ProgramElementDoc Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. RootDoc Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. SeeTag Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. SerialFieldTag Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. SourcePosition Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. Tag Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. ThrowsTag Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. Type Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. TypeVariable Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. WildcardType Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. - Class Summary
Class Description Doclet Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. - Enum Summary
Enum Description LanguageVersion Deprecated, for removal: This API element is subject to removal in a future version.The declarations in this package have been superseded by those in the package jdk.javadoc.doclet.
Report a bug or suggest an enhancement
For further API reference and developer documentation see the Java SE Documentation, which contains more detailed, developer-targeted descriptions with conceptual overviews, definitions of terms, workarounds, and working code examples.
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 1993, 2025, Oracle and/or its affiliates, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
All rights reserved. Use is subject to license terms and the documentation redistribution policy.