." Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved. ." .TH javadoc 1 "05 Jul 2012" .SH "名前" javadoc \- Java APIドキュメント・ジェネレータ .LP Javaソース・ファイルから、APIドキュメントのHTMLページを生成します。このドキュメントで紹介されているJavadocの例は、Solarisを使用した場合のものです。 .SH "形式" .LP \f4javadoc\fP\f2\ [\ \fP\f2options\fP\f2\ ]\ [\ packagenames\ ]\ [\ sourcefilenames\ ]\ [\ \-subpackages\fP\ \f2pkg1:pkg2:...\fP\f2\ ]\ [\ \fP\f2@argfiles\fP\f2\ ]\fP .LP 引数を指定する順序は任意です。Javadocツールでの、処理対象の\f2.java\fPファイルを決定する方法の詳細は、ソース・ファイルの処理を参照してください。 .RS 3 .TP 3 options このドキュメントで説明されているコマンドライン・オプションです。Javadocオプションの標準的な使用方法については、使用例を参照してください。 .TP 3 packagenames 空白文字で区切られた一連のパッケージ名です。たとえば、\f2java.lang\ java.lang.reflect\ java.awt\fPのように指定します。ドキュメント化するパッケージを個別に指定する必要があります。ワイルドカードは使用不可です。再帰的処理のためには、\-subpackagesを使用します。Javadocツールは、\f2\-sourcepath\fPを使用してこれらのパッケージ名を検索します。例 \- 1つ以上のパッケージのドキュメント化を参照してください。 .TP 3 sourcefilenames 空白文字で区切られた一連のソース・ファイル名です。各ファイルは、パスで始まります。アスタリスク(*)などのワイルドカードを含めることができます。Javadocツールが処理するのは、ファイル名が「.java」という拡張子で終わり、その拡張子を除いた名前が実際に有効なクラス名であるすべてのファイルです(Java言語仕様を参照)。したがって、ハイフンを含む名前(\f2X\-Buffer\fPなど)や、その他の無効な文字を含む名前を付けることによって、それらのファイルをドキュメント化の対象から除外できます。これは、テスト・ファイルやテンプレート・ファイルの場合に便利です。ソース・ファイル名の前に指定したパスによって、javadocがそのファイルを検索する場所が決まります。(Javadocツールは、これらのソース・ファイル名を検索するときに\f2\-sourcepath\fPを使用\f2しません\fP。)相対パスは現在のディレクトリを起点とするため、\f2Button.java\fPを渡すことは、\f2./Button.java\fPを渡すことと同じです。ソース・ファイル名をワイルドカードを含むフルパスで指定すると、\f2/home/src/java/awt/Graphics*.java\fPのようになります。例 \- 1つ以上のクラスのドキュメント化を参照してください。また、例 \- パッケージとクラスのドキュメント化のように、パッケージ名とソース・ファイル名を混在させることもできます。 .TP 3 \-subpackages pkg1:pkg2:... ソース・ファイルから指定されたパッケージおよびそのサブパッケージ内に再帰的にドキュメントを生成します。パッケージ名またはソース・ファイル名を指定する必要はありません。 .TP 3 @argfiles Javadocオプション、パッケージ名、およびソース・ファイル名を任意の順序で並べたリストが含まれる1つ以上のファイルです。このファイルの中では、ワイルドカード(*)および\f2\-J\fPオプションは指定できません。 .RE .SH "説明" .LP \f3Javadoc\fPツールは、一連のJavaソース・ファイルにある宣言およびドキュメンテーション・コメントを解析し、デフォルトではpublicクラス、protectedクラス、ネストされたクラス(匿名の内部クラスは除く)、インタフェース、コンストラクタ、メソッド、およびフィールドについて記述した一連のHTMLページを生成します。また、API(アプリケーション・プログラミング・インタフェース)ドキュメントの生成や、一連のソース・ファイルの実装ドキュメントの生成に使用できます。 .LP Javadocツールは、パッケージ全体、個々のソース・ファイル、またはその両方に対して実行できます。パッケージ全体のドキュメント化を行うには、\f2\-subpackages\fPを使用して最上位ディレクトリから下方に再帰的にたどるか、パッケージ名の明示的なリストを渡します。個々のソース・ファイルのドキュメント化を行うには、ソース(.\f2.java\fP)ファイル名のリストを渡します。具体的な例は、このドキュメントの最後に紹介します。次に、Javadocによるソース・ファイルの処理について説明します。 .SS ソース・ファイルの処理 .LP Javadocツールは、末尾が「\f2.java\fP」のファイル以外に、ソース・ファイルで記述されている他のファイルも処理します。個々のソース・ファイル名を明示的に渡してJavadocツールを実行する場合、どの\f2.java\fPファイルを処理するかを正確に指定できます。ただし、多くの開発者はこの方法では作業しません。パッケージ名を渡すほうが簡単だからです。ソース・ファイル名を明示的に指定しなくても、Javadocツールは3つの方法で実行できます。それは、(1)パッケージ名を渡す、(2)\f2\-subpackages\fPを使用する、(3)ソース・ファイル名でワイルドカードを使用する(\f2*.java\fP)、という方法です。これらの場合、Javadocツールが\f2.java\fPファイルの処理を行うのは、そのファイルが次のすべての要件を満たす場合のみです。 .RS 3 .TP 2 o 接尾辞「\f2.java\fP」を除いた名前が実際に有効なクラス名である場合(有効な文字については、Java言語仕様を参照) .TP 2 o ソース・ツリーのルートから相対的なディレクトリ・パスが、区切り文字をドットに変換すると、実際に有効なパッケージ名である場合 .TP 2 o package文に有効なパッケージ名(前箇条書きで指定)が含まれる場合 .RE .LP \f3リンクの処理\fP \- Javadocツールは、処理の実行中に、その実行でドキュメント化されるパッケージ、クラス、およびメンバーの名前に対して、自動的に相互参照リンクを追加します。このようなリンクは、次のような場所に追加されます。 .RS 3 .TP 2 o 宣言(戻り値の型、引数の型、フィールドの型) .TP 2 o \f2@see\fPタグから生成された「関連項目」セクション .TP 2 o \f2{@link}\fPタグから生成されたインライン・テキスト .TP 2 o \f2@throws\fPタグから生成された例外の名前 .TP 2 o インタフェースのメンバーに対する「定義」リンクと、クラスのメンバーに対する「オーバーライド」リンク .TP 2 o パッケージ、クラス、およびメンバーをリストしている概要表 .TP 2 o パッケージおよびクラスの継承ツリー .TP 2 o 索引 .RE .LP コマンドラインで指定しなかったクラスについての既存のテキスト(別に生成したテキスト)に対してハイパーリンクを追加するには、\f2\-link\fPおよび\f2\-linkoffline\fPオプションを利用できます。 .LP \f3その他の処理についての詳細\fP \- Javadocツールは、実行するたびに1つの完全なドキュメントを作成します。ドキュメントを追加生成することはできません。つまり、Javadocツールの以前の実行結果を修正したり、その内容を\f2直接\fP組み入れたりすることはできません。ただし、前述のように、他の実行結果にリンクすることはできます。 .LP 実装上の理由から、Javadocツールは、ジョブを実行するためにjavaコンパイラを必要とし、javaコンパイラに依存しています。Javadocツールは、\f2javac\fPの一部を呼び出して宣言をコンパイルしますが、メンバーの実装は無視します。これは、クラス階層を含むクラスの豊富な内部表現とクラスの「使用」関係を構築し、その情報からHTMLを生成します。さらに、Javadocツールは、ソース・コードのドキュメンテーション・コメントから、ユーザーの提供したドキュメントも取得します。 .LP 実際には、Javadocツールは、メソッド本体を持たない純粋なスタブ・ファイルである\f2.java\fPソース・ファイルに対しても実行できます。したがって、APIの作成時には、実装を記述する前の設計の早い段階で、ドキュメンテーション・コメントを記述してjavadocツールを実行できます。 .LP コンパイラに依存することによって、HTML出力は、実際の実装に正確に対応します。実際の実装は、明示的なソース・コードにではなく、暗黙のソース・コードに依存する場合があります。たとえば、Javadocツールは、\f2.class\fPファイルには存在するがソース・コードには存在しないデフォルト・コンストラクタ(Java言語仕様を参照)をドキュメント化します。 .LP 通常、Javadocツールでは、ソース・ファイルのコードが不完全またはエラーを含んでいる場合でもドキュメントを生成できます。このため、デバッグやトラブルシューティングを完了する前にドキュメントを生成できます。たとえば、\f2Java言語仕様\fPによると、抽象メソッドを含むクラスは、それ自体を抽象として宣言する必要があります。javacコンパイラはこのエラーを検出すると停止しますが、Javadocツールはこのチェックを行わず、警告を出さずに処理を続行します。Javadocツールはドキュメンテーション・コメントの基本的なチェックを行います。ドキュメンテーション・コメントをより詳しくチェックする必要がある場合は、DocCheckドックレットを使用してください。 .LP Javadocツールは、ドキュメントの内部構造を構築する際、参照クラスをすべてロードします。このため、Javadocツールは、ブートストラップ・クラス、拡張機能、またはユーザー・クラスにかかわらず、すべての参照クラスを検索できる必要があります。詳細は、 .na \f2クラスの検索方法\fP @ .fi http://docs.oracle.com/javase/7/docs/technotes/tools/findingclasses.htmlを参照してください。通常、作成するクラスは、拡張機能としてロードするか、Javadocツールのクラス・パス内に置く必要があります。 .SS Javadocのドックレット .LP Javadocツールの出力の内容と形式は、ドックレットを使用してカスタマイズできます。Javadocツールには、標準ドックレットと呼ばれるデフォルトの「組込み」ドックレットがあります。標準ドックレットは、HTML形式のAPIドキュメントを生成します。標準ドックレットを修正またはサブクラス化することや、HTML、XML、MIF、RTFなどの好みの出力形式を生成する独自のドックレットを記述することも可能です。ドックレットとその使用方法については、次を参照してください。 .RS 3 .TP 2 o .na \f2Javadocのドックレット\fP @ .fi http://docs.oracle.com/javase/7/docs/technotes/guides/javadoc/index.html .TP 2 o \f2\-doclet\fPコマンドライン・オプション .RE .LP \f2\-doclet\fPコマンドライン・オプションでカスタム・ドックレットが指定されていない場合、Javadocツールは、デフォルトの標準ドックレットを使用します。javadocツールには、使用されているドックレットに関係なく使用できるコマンドライン・オプションがあります。標準ドックレットでは、これらの他に、いくつかのコマンドライン・オプションが追加されます。どちらのオプションについても、後述のオプションで説明します。 .SS 関連ドキュメントおよびドックレット .RS 3 .TP 2 o .na \f2Javadocに施された拡張機能\fP @ .fi http://docs.oracle.com/javase/7/docs/technotes/guides/javadoc/index.html \- Javadocで追加された改良点の詳細。 .TP 2 o .na \f2Javadoc FAQ\fP @ .fi http://www.oracle.com/technetwork/java/javase/documentation/index\-137483.html \- 頻繁に寄せられる質問に対する回答、Javadoc関連のツールについての情報、およびバグの回避方法。 .TP 2 o .na \f2How to Write Doc Comments for Javadoc\fP @ .fi http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html \- ドキュメンテーション・コメントの記述方法に関するSunの規約。 .TP 2 o .na \f2API仕様を記述するための要件\fP @ .fi http://www.oracle.com/technetwork/java/javase/documentation/index\-142372.html \- Java SEプラットフォーム仕様を記述する際に使用された標準要件。この情報は、ソース・ファイルのドキュメンテーション・コメント形式でAPI仕様を記述する場合にも、その他の形式で記述する場合にも役立ちます。検証可能なアサーションを満たすパッケージ、クラス、インタフェース、フィールド、およびメソッドについての要件を定めています。 .TP 2 o .na \f2ドキュメンテーション・コメントの仕様\fP @ .fi http://docs.oracle.com/javase/specs/ \- ドキュメンテーション・コメントのオリジナル仕様については、\f2Java Language Specification\fP (James Gosling、Bill Joy、Guy Steele共著)の初版の第18章、Documentation Commentsを参照してください。(この章は、第2版では削除されました。) .TP 2 o .na \f2DocCheckドックレット\fP @ .fi http://www.oracle.com/technetwork/java/javase/documentation/index\-141437.html \- ソース・ファイル内のドキュメンテーション・コメントをチェックし、検出されたエラーや不正のレポートを生成します。Doc Checkユーティリティの一部です。 .RE .SS 用語 .LP \f2ドキュメンテーション・コメント\fP、\f2docコメント\fP、\f2主説明\fP、\f2タグ\fP、\f2ブロック・タグ\fP、および\f2インライン・タグ\fPの用語については、ドキュメンテーション・コメントで説明します。次のその他の用語は、Javadocツールのコンテキストで特定の意味を持ちます。 .RS 3 .TP 3 生成ドキュメント(generated document) JavadocツールがJavaソース・コード内のドキュメンテーション・コメントから生成したドキュメントのことです。デフォルトの生成ドキュメントはHTML形式で、標準ドックレットによって作成されます。 .LP .TP 3 名前(name) Java言語で書かれたプログラム要素の名前、つまりパッケージ、クラス、インタフェース、フィールド、コンストラクタ、またはメソッドの名前のことです。名前は、\f2java.lang.String.equals(java.lang.Object)\fPのような完全修飾名にすることも、\f2equals(Object)\fPのような部分修飾名にすることもできます。 .LP .TP 3 ドキュメント化されるクラス(documented classes) Javadocの実行によって詳細なドキュメントが生成されるクラスおよびインタフェースのことです。ドキュメント化するには、ソース・ファイルが使用可能であり、ソース・ファイル名またはパッケージ名をjavadocコマンドに渡す必要があり、アクセス修飾子(public、protected、package\-privateまたはprivate)によってフィルタ処理されないようにする必要があります。ドキュメント化されるクラスは、javadocツールの出力に組み込まれるクラス、つまり\f2包含クラス\fPとも呼ばれます。 .LP .TP 3 包含クラス(included classes) Javadocツールの実行によって詳細なドキュメントが生成されるクラスおよびインタフェースのことです。\f2ドキュメント化されるクラス\fPと同じです。 .LP .TP 3 除外クラス(excluded classes) Javadocツールの実行によって詳細なドキュメントが生成\f2されない\fPクラスおよびインタフェースのことです。 .LP .TP 3 参照クラス(referenced classes) ドキュメント化されるクラスおよびインタフェースの定義(実装)またはドキュメンテーション・コメントの中で明示的に参照されているクラスおよびインタフェースのことです。参照の例としては、戻り値の型、パラメータの型、キャストの型、拡張されたクラス、実装されたインタフェース、インポートされたクラス、メソッド本体で使用されるクラス、@see、{@link}、{@linkplain}、{@inheritDoc}タグなどがあります。(この定義は .na \f21.3\fP @ .fi http://docs.oracle.com/javase/1.3/docs/tooldocs/solaris/javadoc.html#referencedclassesから変更されていることに注意してください。)Javadocツールを実行するときは、Javadocのブート・クラスパスおよびクラスパス内にあるすべての参照クラスをメモリーにロードする必要があります。(参照クラスが見つからない場合は、「クラスが見つかりません」という警告が表示されます。)Javadocツールは、クラスの存在とそのメンバーの完全修飾名を判別するのに必要十分な情報を、.classファイルから引き出すことができます。 .LP .TP 3 外部参照クラス(external referenced classes) 参照クラスのうち、Javadocの実行中にドキュメントが生成されないクラスのことです。つまり、これらのクラスは、コマンドラインでJavadocツールに渡されていません。生成ドキュメント内でこれらのクラスにリンクしている箇所は、\f2外部参照\fPまたは\f2外部リンク\fPと呼ばれます。たとえば、\f2java.awt\fPパッケージに対してのみJavadocツールを実行した場合、\f2Object\fPなどの\f2java.lang\fP内のすべてのクラスが外部参照クラスになります。外部参照クラスにリンクするには、\f2\-link\fPおよび\f2\-linkoffline\fPオプションを使用します。外部参照クラスには、通常そのソース・コメントをJavadocツールの実行で利用できないという重要な特徴があります。この場合、それらのコメントを継承することはできません。 .RE .SH "ソース・ファイル" .LP Javadocツールは、4つのタイプの異なる「ソース」ファイルから出力を生成します。そのファイルは、クラスのJava言語ソース・ファイル(\f2.java\fP)、パッケージ・コメント・ファイル、概要コメント・ファイル、およびその他の未処理のファイルです。ここでは、ドキュメント化しないがソース・ツリーに存在する場合があるテスト・ファイルやテンプレート・ファイルについても説明します。 .SS クラス・ソース・コード・ファイル .LP それぞれのクラスまたはインタフェース、およびそのメンバーは、独自のドキュメンテーション・コメントを持つことができ、それを\f2.java\fPファイル内に保持します。ドキュメンテーション・コメントの詳細は、ドキュメンテーション・コメントを参照してください。 .SS パッケージ・コメント・ファイル .LP それぞれのパッケージは、独自のドキュメンテーション・コメントを持つことができ、それを専用の「ソース」ファイルに保持します。その内容は、Javadocツールによって生成されるパッケージの概要ページに組み込まれます。このコメントには、通常、そのパッケージ全体に当てはまるドキュメントを記述します。 .LP パッケージ・コメント・ファイルを作成する場合、コメントの格納先として、次の2つのファイルのいずれかを選択できます。 .RS 3 .TP 2 o \f2package\-info.java\fP \- パッケージ宣言、パッケージ注釈、パッケージ・コメント、およびJavadocタグを格納できます。このファイルは一般に、package.htmlよりも推奨されます。 .TP 2 o \f2package.html\fP \- 格納できるのはパッケージ・コメントとJavadocタグのみです。パッケージ注釈は格納できません。 .RE .LP 各パッケージは、\f2package.html\fPファイルまたは\f2package\-info.java\fPファイルのいずれかを1つ持つことができますが、その両方を持つことはできません。このどちらかのファイルを\f2.java\fPファイルとともに、ソース・ツリー内のそのパッケージ・ディレクトリ内に配置してください。 .LP \f4package\-info.java\fP \- このファイルには、次の構造のパッケージ・コメントを格納できます。コメントはパッケージ宣言の前に配置します。 .LP ファイル: \f2java/applet/package\-info.java\fP .nf \f3 .fl /** .fl * Provides the classes necessary to create an .fl * applet and the classes an applet uses .fl * to communicate with its applet context. .fl *
.fl * The applet framework involves two entities: .fl * the applet and the applet context. .fl * An applet is an embeddable window (see the .fl * {@link java.awt.Panel} class) with a few extra .fl * methods that the applet context can use to .fl * initialize, start, and stop the applet. .fl * .fl * @since 1.0 .fl * @see java.awt .fl */ .fl package java.lang.applet; .fl \fP .fi .LP コメント区切り文字の\f2/**\fPと\f2*/\fPは存在している必要がありますが、中間行の行頭のアスタリスクは省略してもかまいません。 .LP \f4package.html\fP \- このファイルには、次の構造のパッケージ・コメントを格納できます。コメントは\f2
\fP要素内に配置します。 .LP ファイル: \f2java/applet/package.html\fP .nf \f3 .fl .fl .fl Provides the classes necessary to create an applet and the .fl classes an applet uses to communicate with its applet context. .fl.fl The applet framework involves two entities: the applet .fl and the applet context. An applet is an embeddable .fl window (see the {@link java.awt.Panel} class) with a .fl few extra methods that the applet context can use to .fl initialize, start, and stop the applet. .fl .fl @since 1.0 .fl @see java.awt .fl .fl .fl \fP .fi .LP これは単なる通常のHTMLファイルであり、パッケージ宣言を含んでいない点に注意してください。パッケージ・コメント・ファイルの内容は、他のすべてのコメントと同様にHTMLで記述しますが、例外が1つあります。それは、このドキュメンテーション・コメントには、コメント区切り文字である\f2/**\fPと\f2*/\fP、または行頭のアスタリスクを含めない、という点です。コメントを書く場合は、最初の文をパッケージの概要とし、\f2
\fPと最初の文の間にタイトルやその他のテキストを含めないようにします。パッケージ・タグを含めることはできますが、他のドキュメンテーション・コメントと同様、すべてのブロック・タグは、主説明の後に配置する必要があります。\f2@see\fPタグをパッケージ・コメント・ファイルに追加する場合には、完全修飾名を使用する必要があります。詳細は、 .na \f2package.html\fPの例 @ .fi http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#packagecommentsを参照してください。 .LP \f3パッケージ・コメント・ファイルの処理\fP \- Javadocツールは、実行時にパッケージ・コメント・ファイルを自動的に検索し、このファイルを見つけると次の処理を行います。 .RS 3 .TP 2 o 処理できるようにコメントをコピーします。(\f2package.html\fPの場合であれば、\f2\fPと\f2\fP HTMLタグの間にある内容をすべてコピーします。\f2\fPセクションを含め、そこに\f2\fPタグ内に張り付けても、インデントが保持されます。通常、ブラウザは、空白文字をタブよりも一律に解釈します。インデントの起点は(区切り文字\f2/**\fPまたは\f2\fPタグではなく)左マージンになります。 .LP \f3最初の文\fP \- 各ドキュメンテーション・コメントの最初の文は、宣言されているエンティティに関する簡潔かつ完全な要約文である必要があります。この文は、空白、タブ、または行終了文字が続く最初のピリオド、または最初のブロック・タグがある位置で終わります。最初の文は、JavadocツールによってHTMLページの先頭にあるメンバーの概要の部分にコピーされます。 .LP \f3複数フィールドの宣言\fP \- Javaでは、1つの文で複数のフィールドを宣言できます。ただし、この文には、1つのドキュメンテーション・コメントしか記述できません。そのコメントが、すべてのフィールドに対してコピーされます。したがって、フィールドごとにドキュメンテーション・コメントを記述する必要がある場合は、各フィールドを別々の文で宣言する必要があります。たとえば、次のドキュメンテーション・コメントは、1つの宣言として記述すると不適切です。この場合は、宣言を2つに分けることをお薦めします。 .nf \f3 .fl /** .fl * The horizontal and vertical distances of point (x,y) .fl */ .fl public int x, y; // Avoid this .fl \fP .fi .LP 上のコードからは、次のようなドキュメントが生成されます。 .nf \f3 .fl public int \fP\f3x\fP .fl .fi .RS 3 The horizontal and vertical distances of point (x,y) .RE .nf \f3 .fl public int \fP\f3y\fP .fl .fi .RS 3 The horizontal and vertical distances of point (x,y) .RE .LP \f3見出しタグの使用には要注意\fP \- メンバーに対してドキュメンテーション・コメントを記述するときには、や
などのHTML見出しタグを使用しないことをお薦めします。Javadocツールは、完全な構造化ドキュメントを作成するので、このような構造化タグが使用されていると、生成ドキュメントの形式が悪影響を受けることがあります。ただし、クラスやパッケージのコメントでは、これらの見出しを使用して独自の構造を指定してかまいません。 .SS メソッド・コメントの自動コピー .LP Javadocツールには、次の2つの場合に、クラスおよびインタフェースのメソッド・コメントをコピーまたは「継承」する機能があります。コンストラクタ、フィールド、およびネストされたクラスは、ドキュメンテーション・コメントを継承しません。 .RS 3 .TP 2 o \f3自動的にコメントを継承して見つからないテキストを埋める\fP \- 主説明、\f2@return\fPタグ、\f2@param\fPタグ、または\f2@throws\fP タグがメソッド・コメントに見つからない場合、Javadocツールは、メソッドをオーバーライドまたは実装している場合はそのメソッドから、対応する主説明またはタグ・コメントを、次のアルゴリズムに従ってコピーします。 .LP 厳密には、特定のパラメータの\f2@param\fPタグが見つからない場合、そのパラメータのコメントが、上位の継承階層のメソッドからコピーされます。特定の例外の\f2@throws\fPタグが見つからない場合、その例外が宣言されている場合に\f2かぎり\fP、\f2@throws\fPタグがコピーされます。 .LP この動作はバージョン1.3以前の動作とは対照的です。これまでのバージョンでは、主説明またはタグが存在すれば、コメントは一切継承されませんでした。 .TP 2 o \f3{@inheritDoc}タグを含むコメントを明示的に継承する\fP \- インライン・タグ\f2{@inheritDoc}\fPを、メソッドの主説明内または\f2@return\fPタグ、\f2@param\fPタグ、または\f2@throws\fPのいずれかのタグ・コメント内に挿入します。対応する継承された主説明またはタグ・コメントがその位置にコピーされます。 .RE .LP ドキュメンテーション・コメントを実際にコピーに利用するには、継承したメソッドのソース・ファイルが\-sourcepathで指定したパスのみに置かれている必要があります。コマンドラインで、クラスもパッケージも渡す必要はありません。この点は、クラスがドキュメント化されるクラスであることが必要だった1.3.x以前のリリースと異なります。 .LP \f3クラスおよびインタフェースからの継承\fP \- クラスおよびインタフェースから継承する次の3つの場合に、コメントの継承が行われます。 .RS 3 .TP 2 o クラスのメソッドがスーパークラスのメソッドをオーバーライドしている場合 .TP 2 o インタフェースのメソッドがスーパーインタフェースのメソッドをオーバーライドしている場合 .TP 2 o クラスのメソッドがインタフェースのメソッドを実装している場合 .RE .LP 最初の2つのケース(メソッドがオーバーライドしている場合)では、Javadocツールは、そのコメントが継承されているかどうかにかかわらず、オーバーライドしているメソッドのドキュメント内に「オーバーライド」という小見出しを生成し、オーバーライドされているメソッドへのリンクを書き込みます。 .LP 3つ目のケース(特定のクラスのメソッドがインタフェースのメソッドを実装している場合)では、Javadocツールは、オーバーライドしているメソッドのドキュメント内に「定義」という小見出しを生成し、実装されているメソッドへのリンクを書き込みます。これは、コメントが継承されているかどうかにかかわりません。 .LP \f3メソッド・コメントが継承されるアルゴリズム\fP \- あるメソッドにドキュメンテーション・コメントが記述されていない場合、または{@inheritDoc}タグがある場合、Javadocツールは、次のアルゴリズムを使用して適切なコメントを検索します。このアルゴリズムは、最も厳密に適切なドキュメンテーション・コメントを検索できるように設計されており、スーパークラスよりもインタフェースが優先されるようになっています。 .RS 3 .TP 3 1. 直接に実装されている(または、拡張されている)インタフェースを、メソッドの宣言で「implements」(または「extends」)という語の後に出現する順序で、1つずつ調べます。このメソッドについて最初に見つかったドキュメンテーション・コメントを採用します。 .TP 3 2. 手順1でドキュメンテーション・コメントが見つからなかった場合は、直接実装されている(または、拡張されている)インタフェースのそれぞれに対して、このアルゴリズム全体を再帰的に適用します(その際の順序は、手順1でインタフェースを調べたときの順序と同じ)。 .TP 3 3. 手順2でドキュメンテーション・コメントが見つからなかった場合で、このクラスがObject以外のクラスである(インタフェースではない)場合は、次のように処理します。 .RS 3 .TP 3 a. スーパークラスにこのメソッドについてのドキュメンテーション・コメントが記述されている場合は、そのコメントを採用します。 .TP 3 b. 手順3aでドキュメンテーション・コメントが見つからなかった場合は、スーパークラスに対して、このアルゴリズム全体を再帰的に適用します。 .RE .RE .SH "javadocタグ" .LP Javadocツールは、Javaのドキュメンテーション・コメント内に埋め込まれた特別なタグを解析します。これらのドキュメンテーション・タグを使用すると、完全な整形式のAPIをソース・コードから自動的に生成できます。タグは「アットマーク」記号(\f2@\fP)で始まり、大文字と小文字が区別されます。これらのタグは、表示されているとおりに大文字と小文字を使用して入力する必要があります。タグは、行の先頭(先頭の空白文字と省略可能なアスタリスクの後)に置く必要があります。そうしないと、通常のテキストとして扱われます。慣例として、同じ名前のタグは1箇所にまとめます。たとえば、\f2@see\fPタグが複数ある場合は、すべて同じ場所にまとめて配置します。 .LP タグには次の2つのタイプがあります。 .RS 3 .TP 2 o \f3ブロック・タグ\fP \- 主説明に続くタグ・セクション内にのみ記述可能。ブロック・タグは、\f2@tag\fPの形式をとります。 .TP 2 o \f3インライン・タグ\fP \- 主説明内、またはブロック・タグのコメント内に記述可能。インライン・タグは、\f2{@tag}\fPのように中括弧で囲みます。 .RE .LP 現時点で有効なタグは、次のとおりです。 .LP .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .rm 80 81 .nr 80 0 .nr 38 \w\f3タグ\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2@author\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2{@code}\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2{@docRoot}\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2@deprecated\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2@exception\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2{@inheritDoc}\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2{@link}\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2{@linkplain}\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2{@literal}\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2@param\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2@return\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2@see\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2@serial\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2@serialData\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2@serialField\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2@since\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2@throws\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2{@value}\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2@version\fP .if \n(80<\n(38 .nr 80 \n(38 .80 .rm 80 .nr 81 0 .nr 38 \w\f3導入されたJDK/SDK\fP .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \w1.0 .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \w1.5 .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \w1.3 .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \w1.0 .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \w1.0 .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \w1.4 .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \w1.2 .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \w1.4 .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \w1.5 .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \w1.0 .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \w1.0 .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \w1.0 .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \w1.2 .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \w1.2 .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \w1.2 .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \w1.1 .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \w1.2 .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \w1.4 .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \w1.0 .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 .nr 38 1n .nr 79 0 .nr 40 \n(79+(0*\n(38) .nr 80 +\n(40 .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 .if t .if \n(TW>\n(.li .tm Table at line 861 file Input is too wide - \n(TW units .fc .nr #T 0-1 .nr #a 0-1 .eo .de T# .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\f3タグ\fP\h'|\n(41u'\f3導入されたJDK/SDK\fP .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\f2@author\fP\h'|\n(41u'1.0 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\f2{@code}\fP\h'|\n(41u'1.5 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\f2{@docRoot}\fP\h'|\n(41u'1.3 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\f2@deprecated\fP\h'|\n(41u'1.0 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\f2@exception\fP\h'|\n(41u'1.0 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\f2{@inheritDoc}\fP\h'|\n(41u'1.4 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\f2{@link}\fP\h'|\n(41u'1.2 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\f2{@linkplain}\fP\h'|\n(41u'1.4 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\f2{@literal}\fP\h'|\n(41u'1.5 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\f2@param\fP\h'|\n(41u'1.0 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\f2@return\fP\h'|\n(41u'1.0 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\f2@see\fP\h'|\n(41u'1.0 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\f2@serial\fP\h'|\n(41u'1.2 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\f2@serialData\fP\h'|\n(41u'1.2 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\f2@serialField\fP\h'|\n(41u'1.2 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\f2@since\fP\h'|\n(41u'1.1 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\f2@throws\fP\h'|\n(41u'1.2 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\f2{@value}\fP\h'|\n(41u'1.4 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\f2@version\fP\h'|\n(41u'1.0 .fc .nr T. 1 .T# 1 .35 .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-42 .LP カスタム・タグについては、\-tagオプションを参照してください。 .RS 3 .TP 3 @author\ name\-text \-authorオプションが使用されている場合、生成ドキュメントに「作成者」エントリを追加して、指定された\f2name\-text\fPを書き込みます。1つのドキュメンテーション・コメントに複数の\f2@author\fPタグを含めることができます。1つの\f2@author\fPタグに1つの名前を指定することも、複数の名前を指定することもできます。前者の場合は、Javadocツールによって名前と名前の間にカンマ(\f2,\fP)と空白文字が挿入されます。後者の場合は、テキスト全体が、解析されることなく、生成ドキュメントにそのままコピーされます。したがって、カンマではなく、各言語に対応した名前区切り文字を使用する必要があるときは、1つのタグに複数の名前を指定してください。 .RE .LP 詳細は、タグを使用できる場所および .na \f2@authorタグのドキュメント\fP @ .fi http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@authorを参照してください。 .LP .RS 3 .TP 3 @deprecated\ deprecated\-text 注意: @Deprecated注釈を使用して、プログラム要素を非推奨にできます。 .RE .LP このAPIは動作し続けますが、このAPIを使用しないことを薦めるコメントを追加します。Javadocツールは、\f2deprecated\-text\fPを主説明の前に移動してイタリックにし、その前に太字の警告「推奨されていません。」を追加します。このタグは、すべてのドキュメンテーション・コメント、つまり概要、パッケージ、クラス、インタフェース、コンストラクタ、メソッド、およびフィールドで有効です。 .LP \f2deprecated\-text\fPの最初の文では、少なくとも、そのAPIが推奨されなくなった時期と、代替として使用するAPIをユーザーに提示する必要があります。Javadocツールは、この最初の文のみを、概要セクションと索引にコピーします。その後の文では、推奨されない理由を説明することもできます。かわりのAPIを指し示す\f2{@link}\fPタグ(Javadoc 1.2以降の場合)を含める必要があります。 .LP 詳細は、 .na \f2@deprecatedタグのドキュメント\fP @ .fi http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@deprecatedを参照してください。 .RS 3 .TP 2 o Javadoc 1.2以降では、\f2{@link}\fPタグを使用します。これにより、必要な場所にインラインでリンクを作成できます。次に例を示します。 .nf \f3 .fl /** .fl * @deprecated As of JDK 1.1, replaced by {@link #setBounds(int,int,int,int)} .fl */ .fl .fl \fP .fi .TP 2 o Javadoc 1.1では、\f2@see\fPタグ(インラインは不可)を\f2@deprecated\fPタグごとに作成するのが標準の形式です。 .RE .LP 推奨されないタグの詳細は、 .na \f2@deprecatedタグ\fP @ .fi http://docs.oracle.com/javase/7/docs/technotes/guides/javadoc/deprecation/index.htmlのドキュメントを参照してください。 .LP .RS 3 .TP 3 {@code\ text} \f2
{@literal}
\fPと同等です。 .LP テキストをHTMLマークアップまたはネストされたjavadocタグとして解釈せずに、\f2text\fPを\f2コード\fP・フォントで表示します。これにより、ドキュメンテーション・コメントでは、パラメータの型(\f2