Javadoc: Difference between revisions

Content deleted Content added
Design: This section is not really about design; not in typical meanings of design; renaming to markup
Tags: Mobile edit Mobile web edit
 
(3 intermediate revisions by 3 users not shown)
Line 1:
{{short description|Documentation generator for Java}}
{{how-to|date=August 2023}}
'''Javadoc''' (also capitalized as '''JavaDoc''' or '''javadoc''') is an [[Application programming interface|API]] [[documentation generator]] for the [[Java (programming language)|Java programming language]]. Based on information in Java [[source code]], Javadoc generates documentation formatted as [[HTML]] and other formats via [[Plug-in (computing)|extensions]], other formats.<ref>{{cite web |url=http://agile.csc.ncsu.edu/SEMaterials/tutorials/javadoc/ |title=Javadoc |website=agile.csc.ncsu.edu |access-date=12 January 2022 |archive-url=https://web.archive.org/web/20170613233020/http://agile.csc.ncsu.edu/SEMaterials/tutorials/javadoc/ |archive-date=13 June 2017 |url-status=dead}}</ref> Javadoc was created by [[Sun Microsystems]] and is owned by [[Oracle Corporation|Oracle]] today.
 
The content and formatting of a resulting document are controlled via special [[Markup language|markup]] in source code [[Comment (computer programming)|comments]]. As this markup is [[de facto standard]] and ubiquitous for documenting Java code,<ref>{{cite web|url = http://docs.oracle.com/javase/1.5.0/docs/tooldocs/solaris/javadoc.html|title = javadoc - The Java API Documentation Generator|access-date = 2011-09-30|publisher = [[Sun Microsystems]]}}.</ref> many [[Integrated Development Environment|IDE]]s extract and display the Javadoc information while viewing the source code; often via hover over an associated symbol. Some IDEs, like [[IntelliJ IDEA]], [[NetBeans]] and [[Eclipse (software)|Eclipse]], support generating Javadoc template comment blocks.<ref>[https://www.jetbrains.com/idea/ IntelliJ IDEA], [http://www.netbeans-blog.org/netbeans-ide/generating-javadoc-for-a-project-in-netbeans-ide.html NetBeans] {{Webarchive|url=https://web.archive.org/web/20170405230224/http://www.netbeans-blog.org/netbeans-ide/generating-javadoc-for-a-project-in-netbeans-ide.html |date=2017-04-05 }} and [http://www.eclipse.org/ Eclipse]</ref> The <code>@tag</code> syntax of Javadoc markup has been re-used by other documentation generators, including [[Doxygen]], [[JSDoc]], [https://www.erlang.org/doc/apps/edoc/chapter.html EDoc] and [[HeaderDoc]].
 
Javadoc supports extension via [[doclets]] and taglets, which allow for generating different output formats and for [[static analysis]] of a [[codebase]]. For example, [[JDiff]] reports changes between two versions of an API.
Line 12:
|date=2003-07-08
|access-date=2013-01-19
|quote=When I did the original JavaDoc in the original compiler, even the people close around me pretty soundly criticized it. And it was interesting, because the usual criticism was: a good tech writer could do a lot better job than the JavaDoc does. And the answer is, well, yeah, but how many APIs are actually documented by good tech writers? And how many of them actually update their documentation often enough to be useful?}}</ref>
 
Javadoc has been part of Java since its first release, and is often updated with each release of the [[Java Development Kit]].<ref>{{cite web|url = http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html|title = How to Write Doc Comments for the Javadoc Tool|access-date = 2011-09-30|publisher = [[Sun Microsystems]]}}.</ref>
 
Javadoc and the source code comments used by Javadoc, do not affect the performance of a Java executable since comments are ignored by the compiler.
 
== Markup ==
 
Javadoc ignores comments unless they are specially marked. A Javadoc comment is marked with an extra asterisk after the start of a multi-line comment: <code>/**</code>. A comment block pertains to the symbol that follows the block.
 
An example of a class header block follows:
Line 86:
* @see java.math.RoundingMode
*/
void doMove(int fromFile, int fromRank, int toFile, int toRank) { ... }
</syntaxhighlight>
 
== Markdown ==
From Java 23 onwards, Javadoc supports the [[Markdown]] standard CommonMark on comment lines that start with <code>///</code> instead of the older multiline format.<ref>https://openjdk.org/jeps/467 {{Bare URL inline|date=August 2025}}</ref>
 
== Doclets ==
Line 161 ⟶ 164:
== See also ==
* [[Comparison of documentation generators]]
* [[Doxygen]]
* [[.NET documentation comments|.NET XML documentation comments]]