提交 6d8ffc33 编写于 作者: A asaha

Merge

...@@ -369,3 +369,4 @@ ffc348308de2e872f5d510d440604c3726a67a18 jdk8u40-b14 ...@@ -369,3 +369,4 @@ ffc348308de2e872f5d510d440604c3726a67a18 jdk8u40-b14
9dc67d03e6e540f646f27092ed23e94e95fa789e jdk8u40-b16 9dc67d03e6e540f646f27092ed23e94e95fa789e jdk8u40-b16
fc4f5546417071c70cffd89ca83302309f6f7da9 jdk8u40-b17 fc4f5546417071c70cffd89ca83302309f6f7da9 jdk8u40-b17
20a3e2135e0867e55af72f0c66a3de558bc613e2 jdk8u40-b18 20a3e2135e0867e55af72f0c66a3de558bc613e2 jdk8u40-b18
5c31204d19e5976f025026db3d5c17331e8c44db jdk8u40-b19
...@@ -3385,7 +3385,7 @@ with JRE 8, JDK 8, and OpenJDK 8. ...@@ -3385,7 +3385,7 @@ with JRE 8, JDK 8, and OpenJDK 8.
included with JRE 8, JDK 8, and OpenJDK 8. included with JRE 8, JDK 8, and OpenJDK 8.
Apache Commons Math 3.2 Apache Commons Math 3.2
Apache Derby 10.10.1.3 Apache Derby 10.11.1.2
Apache Jakarta BCEL 5.1 Apache Jakarta BCEL 5.1
Apache Jakarta Regexp 1.4 Apache Jakarta Regexp 1.4
Apache Santuario XML Security for Java 1.5.4 Apache Santuario XML Security for Java 1.5.4
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "appletviewer" "1" "2013年11月21日" "JDK 8" "基本ツール" .TH "appletviewer" "1" "2013年11月21日" "JDK 8" "基本ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "extcheck" "1" "2013年11月21日" "JDK 8" "基本ツール" .TH "extcheck" "1" "2013年11月21日" "JDK 8" "基本ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Java IDLおよびRMI-IIOPツール .\" SectDesc: Java IDLおよびRMI-IIOPツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "idlj" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール" .TH "idlj" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jar" "1" "2013年11月21日" "JDK 8" "基本ツール" .TH "jar" "1" "2013年11月21日" "JDK 8" "基本ツール"
...@@ -384,9 +385,7 @@ JAR ...@@ -384,9 +385,7 @@ JAR
.\} .\}
.SH "例" .SH "例"
.PP .PP
\fB例 1\fR \fB例 1 \fR冗長な出力による現在のディレクトリからのすべてのファイルの追加
.br
冗長な出力による現在のディレクトリからのすべてのファイルの追加
.RS 4 .RS 4
.sp .sp
.if n \{\ .if n \{\
...@@ -415,9 +414,7 @@ JAR ...@@ -415,9 +414,7 @@ JAR
.\} .\}
.RE .RE
.PP .PP
\fB例 2\fR \fB例 2 \fRサブディレクトリからのファイルの追加
.br
サブディレクトリからのファイルの追加
.RS 4 .RS 4
.sp .sp
.if n \{\ .if n \{\
...@@ -449,9 +446,7 @@ JAR ...@@ -449,9 +446,7 @@ JAR
.\} .\}
.RE .RE
.PP .PP
\fB例 3\fR \fB例 3 \fRJARのコンテンツのリスト
.br
JARのコンテンツのリスト
.RS 4 .RS 4
.sp .sp
.if n \{\ .if n \{\
...@@ -485,9 +480,7 @@ JAR ...@@ -485,9 +480,7 @@ JAR
.\} .\}
.RE .RE
.PP .PP
\fB例 4\fR \fB例 4 \fR索引の追加
.br
索引の追加
.RS 4 .RS 4
株式取引のアプリケーションの相互依存クラスを、\fBmain\&.jar\fR、\fBbuy\&.jar\fRおよび\fBsell\&.jar\fRの3つのJARファイルに分割する場合、\fBi\fRオプションを使用します。\fBmain\&.jar\fRマニフェスト内の\fBClass\-Path\fR属性を指定する場合、\fBi\fRオプションを使用して、アプリケーションのクラス・ロードの速度を向上できます。 株式取引のアプリケーションの相互依存クラスを、\fBmain\&.jar\fR、\fBbuy\&.jar\fRおよび\fBsell\&.jar\fRの3つのJARファイルに分割する場合、\fBi\fRオプションを使用します。\fBmain\&.jar\fRマニフェスト内の\fBClass\-Path\fR属性を指定する場合、\fBi\fRオプションを使用して、アプリケーションのクラス・ロードの速度を向上できます。
.sp .sp
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: セキュリティ・ツール .\" SectDesc: セキュリティ・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jarsigner" "1" "2013年11月21日" "JDK 8" "セキュリティ・ツール" .TH "jarsigner" "1" "2013年11月21日" "JDK 8" "セキュリティ・ツール"
...@@ -344,7 +345,7 @@ SHA256 ...@@ -344,7 +345,7 @@ SHA256
.PP .PP
これら2つのファイルのベース・ファイル名は、\fB\-sigFile\fRオプションの値から作成されます。たとえば、オプションが\fB\-sigFile MKSIGN\fRの場合、ファイルは\fBMKSIGN\&.SF\fRおよび\fBMKSIGN\&.DSA\fRという名前になります。 これら2つのファイルのベース・ファイル名は、\fB\-sigFile\fRオプションの値から作成されます。たとえば、オプションが\fB\-sigFile MKSIGN\fRの場合、ファイルは\fBMKSIGN\&.SF\fRおよび\fBMKSIGN\&.DSA\fRという名前になります。
.PP .PP
コマンド行で\fB\-sigfile\fRオプションを指定しなかった場合、\fB\&.SF\fRファイルと\fB\&.DSA\fRファイルのベース・ファイル名は、コマンド行で指定された別名の先頭の8文字をすべて大文字に変換したものになります。別名が8文字未満の場合は、別名がそのまま使用されます。別名に、署名ファイル名で使用できない文字が含まれている場合、ファイル名の作成時に、該当する文字が下線(_)文字に変換されます。有効な文字は、アルファベット、数字、下線およびハイフンです。 コマンド行で\fB\-sigfile\fRオプションを指定しなかった場合、\fB\&.SF\fRファイルと\fB\&.DSA\fRファイルのベース・ファイル名は、コマンド行で指定された別名の先頭の8文字をすべて大文字に変換したものになります。別名が8文字未満の場合は、別名がそのまま使用されます。別名に、署名ファイル名で使用できない文字が含まれている場合、ファイル名の作成時に、該当する文字がアンダースコア(_)文字に変換されます。有効な文字は、アルファベット、数字、アンダースコアおよびハイフンです。
.PP .PP
署名ファイル 署名ファイル
.PP .PP
...@@ -521,7 +522,7 @@ JAR ...@@ -521,7 +522,7 @@ JAR
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
イタリックまたは下線付きの項目(オプションの値)の実際の値は、指定する必要があります。 イタリックまたは下線付きの項目(オプションの値)の実際の値は、指定する必要があります。
.RE .RE
.sp .sp
.RS 4 .RS 4
...@@ -664,9 +665,9 @@ JAR ...@@ -664,9 +665,9 @@ JAR
.RS 4 .RS 4
生成された\fB\&.SF\fRファイルおよび\fB\&.DSA\fRファイルに使用するベース・ファイル名を指定します。たとえば、ファイルが\fBDUKESIGN\fRの場合、生成される\fB\&.SF\fRおよび\fB\&.DSA\fRファイルは、\fBDUKESIGN\&.SF\fRおよび\fBDUKESIGN\&.DSA\fRという名前で、署名付きJARファイルの\fBMETA\-INF\fRディレクトリに格納されます。 生成された\fB\&.SF\fRファイルおよび\fB\&.DSA\fRファイルに使用するベース・ファイル名を指定します。たとえば、ファイルが\fBDUKESIGN\fRの場合、生成される\fB\&.SF\fRおよび\fB\&.DSA\fRファイルは、\fBDUKESIGN\&.SF\fRおよび\fBDUKESIGN\&.DSA\fRという名前で、署名付きJARファイルの\fBMETA\-INF\fRディレクトリに格納されます。
.sp .sp
ファイル内の文字は、セット\fBa\-zA\-Z0\-9_\-\fRから指定される必要があります。アルファベット、数字、下線およびハイフン文字のみを使用できます。\fB\&.SF\fRおよび\fB\&.DSA\fRのファイル名では、小文字はすべて大文字に変換されます。 ファイル内の文字は、セット\fBa\-zA\-Z0\-9_\-\fRから指定される必要があります。アルファベット、数字、アンダースコアおよびハイフン文字のみを使用できます。\fB\&.SF\fRおよび\fB\&.DSA\fRのファイル名では、小文字はすべて大文字に変換されます。
.sp .sp
コマンド行で\fB\-sigfile\fRオプションを指定しなかった場合、\fB\&.SF\fRファイルと\fB\&.DSA\fRファイルのベース・ファイル名は、コマンド行で指定された別名の先頭の8文字をすべて大文字に変換したものになります。別名が8文字未満の場合は、別名がそのまま使用されます。別名に、署名ファイル名で無効な文字が含まれている場合、ファイル名を作成するために、該当する文字が下線(_)文字に変換されます。 コマンド行で\fB\-sigfile\fRオプションを指定しなかった場合、\fB\&.SF\fRファイルと\fB\&.DSA\fRファイルのベース・ファイル名は、コマンド行で指定された別名の先頭の8文字をすべて大文字に変換したものになります。別名が8文字未満の場合は、別名がそのまま使用されます。別名に、署名ファイル名で無効な文字が含まれている場合、ファイル名を作成するために、該当する文字がアンダースコア(_)文字に変換されます。
.RE .RE
.PP .PP
\-sigalg \fIalgorithm\fR \-sigalg \fIalgorithm\fR
...@@ -1001,7 +1002,7 @@ noTimestamp ...@@ -1001,7 +1002,7 @@ noTimestamp
.RE .RE
.\} .\}
.PP .PP
検証が成功すると、\fBjar verified\fRが表示されます。そうでない場合は、エラー・メッセージが表示されます。\fB\-verbose\fRオプションを使用すると、詳細情報を取得できます。\fBjarsigner\fRを\fB\-verbose\fRオプションとともに使用するサンプルを、次に示します。 検証が成功すると、\fBjar verified\fRが表示されます。有効でない場合は、エラー・メッセージが表示されます。\fB\-verbose\fRオプションを使用すると、詳細情報を取得できます。\fBjarsigner\fRを\fB\-verbose\fRオプションとともに使用するサンプルを、次に示します。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
......
...@@ -23,14 +23,15 @@ ...@@ -23,14 +23,15 @@
.\" .\"
.\" Title: java .\" Title: java
.\" Language: Japanese .\" Language: Japanese
.\" Date: 2014年8月8 .\" Date: 2015年3月3
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "java" "1" "2014年8月8日" "JDK 8" "基本ツール" .TH "java" "1" "2015年3月3日" "JDK 8" "基本ツール"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
...@@ -652,7 +653,7 @@ JIT ...@@ -652,7 +653,7 @@ JIT
.PP .PP
\-Xmx\fIsize\fR \-Xmx\fIsize\fR
.RS 4 .RS 4
メモリー割当てプールの最大サイズ(バイト単位)を指定します。指定する値は、2MBより大きい1024の倍数にする必要があります。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。デフォルト値は、実行時にシステム構成に基づいて選択されます。サーバー・デプロイメントでは、\fB\-Xms\fRおよび\fB\-Xmx\fRは通常同じ値に設定されます。詳細は、http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gc\-ergonomics\&.htmlにあるガベージ・コレクタ・エルゴノミックを参照してください。 メモリー割当てプールの最大サイズ(バイト単位)を指定します。指定する値は、2MBより大きい1024の倍数にする必要があります。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。デフォルト値は、実行時にシステム構成に基づいて選択されます。サーバー・デプロイメントでは、\fB\-Xms\fRおよび\fB\-Xmx\fRは通常同じ値に設定されます。http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gctuning/index\&.htmlの\fIJava SE HotSpot仮想マシンのガベージ・コレクション・チューニング・ガイド\fRのエルゴノミクスに関する項を参照してください。
.sp .sp
次の例では、割り当てられたメモリーの許可される最大サイズを様々な単位を使用して80MBに設定する方法を示します。 次の例では、割り当てられたメモリーの許可される最大サイズを様々な単位を使用して80MBに設定する方法を示します。
.sp .sp
...@@ -877,14 +878,14 @@ JVM ...@@ -877,14 +878,14 @@ JVM
.RS 4 .RS 4
バイトコード・ベリファイアのモードを設定します。バイトコードの検証は一部の問題のトラブルシューティングに役立ちますが、実行中のアプリケーションへのオーバーヘッドを増大させます。このオプションで使用可能な\fImode\fR引数は次のとおりです。 バイトコード・ベリファイアのモードを設定します。バイトコードの検証は一部の問題のトラブルシューティングに役立ちますが、実行中のアプリケーションへのオーバーヘッドを増大させます。このオプションで使用可能な\fImode\fR引数は次のとおりです。
.PP .PP
none なし
.RS 4 .RS 4
バイトコードを検証しません。これにより、起動時間が短縮され、Javaによって提供される保護も軽減されます。 バイトコードを検証しません。これにより、起動時間が短縮され、Javaによって提供される保護も軽減されます。
.RE .RE
.PP .PP
remote remote
.RS 4 .RS 4
ネットワークを介してリモートでロードされるクラスのみを検証します。これは、\fB\-Xverify\fRオプションを指定しない場合のデフォルトの動作です。 ブートストラップ・クラス・ローダーでロードされていないこれらのクラスを検証します。これは、\fB\-Xverify\fRオプションを指定しない場合のデフォルトの動作です。
.RE .RE
.PP .PP
all all
...@@ -938,9 +939,9 @@ JVM ...@@ -938,9 +939,9 @@ JVM
.PP .PP
\-XX:LargePageSizeInBytes=\fIsize\fR \-XX:LargePageSizeInBytes=\fIsize\fR
.RS 4 .RS 4
Javaヒープに使用される大きいページの最大サイズ(バイト単位)を設定します。\fIsize\fR引数は、2の累乗(2、4、8、16、\&.\&.\&.)である必要があります。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。デフォルトでは、サイズは0に設定され、これは、JVMでは大きいページのサイズが自動的に選択されていることを意味します。 Solarisでは、Javaヒープに使用されるラージ・ページの最大サイズ(バイト単位)を設定します。\fIsize\fR引数は、2の累乗(2、4、8、16、\&.\&.\&.)である必要があります。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。デフォルトでは、サイズは0に設定され、これは、JVMではラージ・ページのサイズが自動的に選択されていることを意味します。
.sp .sp
次の例では、大きいページのサイズを4メガバイト(MB)に設定する方法を示します。 次の例では、ラージ・ページのサイズを4メガバイト(MB)に設定する方法を示します。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
...@@ -995,6 +996,17 @@ JVM ...@@ -995,6 +996,17 @@ JVM
.RE .RE
.RE .RE
.PP .PP
\-XX:ObjectAlignmentInBytes=\fIalignment\fR
.RS 4
Javaオブジェクトのメモリー配置を設定します(バイト単位)。デフォルトでは、値が8バイトに設定されます。指定される値は、2の累乗にして8から256(両端を含む)の範囲内にする必要があります。このオプションにより、大きいJavaヒープ・サイズで圧縮ポインタを使用できます。
.sp
バイト単位のヒープ・サイズ制限は次のように計算されます:
.sp
\fB4GB * ObjectAlignmentInBytes\fR
.sp
注意: 配置の値が増えると、オブジェクト間の未使用の領域も増えます。結果として、大きいヒープ・サイズで圧縮ポインタを使用するメリットがわからない可能性があります。
.RE
.PP
\-XX:OnError=\fIstring\fR \-XX:OnError=\fIstring\fR
.RS 4 .RS 4
リカバリ不能なエラーが発生したときに実行する、カスタム・コマンドまたは一連のセミコロン区切りのコマンドを設定します。文字列に空白が含まれている場合は、引用符で囲む必要があります。 リカバリ不能なエラーが発生したときに実行する、カスタム・コマンドまたは一連のセミコロン区切りのコマンドを設定します。文字列に空白が含まれている場合は、引用符で囲む必要があります。
...@@ -1018,6 +1030,22 @@ JVM ...@@ -1018,6 +1030,22 @@ JVM
\fBOutOfMemoryError\fR例外が最初にスローされたときに実行する、カスタム・コマンドまたは一連のセミコロン区切りのコマンドを設定します。文字列に空白が含まれている場合は、引用符で囲む必要があります。コマンド文字列の例は、\fB\-XX:OnError\fRオプションの説明を参照してください。 \fBOutOfMemoryError\fR例外が最初にスローされたときに実行する、カスタム・コマンドまたは一連のセミコロン区切りのコマンドを設定します。文字列に空白が含まれている場合は、引用符で囲む必要があります。コマンド文字列の例は、\fB\-XX:OnError\fRオプションの説明を参照してください。
.RE .RE
.PP .PP
\-XX:+PerfDataSaveToFile
.RS 4
有効な場合、Javaアプリケーションの終了時にjstat(1)バイナリ・データを保存します。このバイナリ・データは\fBhsperfdata_\fR\fI<pid>\fRという名前のファイルに保存されます。\fI<pid>\fRは、実行したJavaアプリケーションのプロセス識別子です。次のように\fBjstat\fRを使用して、このファイルに含まれるパフォーマンス・データを表示します。
.sp
.if n \{\
.RS 4
.\}
.nf
\fBjstat \-class file:///\fR\fB\fI<path>\fR\fR\fB/hsperfdata_\fR\fB\fI<pid>\fR\fR
\fBjstat \-gc file:///\fR\fB\fI<path>\fR\fR\fB/hsperfdata_\fR\fB\fI<pid>\fR\fR
.fi
.if n \{\
.RE
.\}
.RE
.PP
\-XX:+PrintCommandLineFlags \-XX:+PrintCommandLineFlags
.RS 4 .RS 4
コマンド行に表示された、人間工学的に選択したJVMフラグの印刷を有効にします。これは、ヒープ領域サイズや選択されたガベージ・コレクタなど、JVMによって設定されたエルゴノミック値を確認する場合に役立ちます。デフォルトでは、このオプションは無効であり、フラグは印刷されません。 コマンド行に表示された、人間工学的に選択したJVMフラグの印刷を有効にします。これは、ヒープ領域サイズや選択されたガベージ・コレクタなど、JVMによって設定されたエルゴノミック値を確認する場合に役立ちます。デフォルトでは、このオプションは無効であり、フラグは印刷されません。
...@@ -1166,25 +1194,32 @@ Windows: ...@@ -1166,25 +1194,32 @@ Windows:
JVM内部シグナルの\fBSIGUSR1\fRおよび\fBSIGUSR2\fRのかわりに、代替シグナルの使用を有効にします。デフォルトでは、このオプションは無効であり、代替シグナルは使用されません。このオプションは\fB\-Xusealtsigs\fRと同等です。 JVM内部シグナルの\fBSIGUSR1\fRおよび\fBSIGUSR2\fRのかわりに、代替シグナルの使用を有効にします。デフォルトでは、このオプションは無効であり、代替シグナルは使用されません。このオプションは\fB\-Xusealtsigs\fRと同等です。
.RE .RE
.PP .PP
\-XX:+UseBiasedLocking \-XX:\-UseBiasedLocking
.RS 4 .RS 4
バイアス・ロックの使用を効にします。かなりの量の非競合の同期化がある一部のアプリケーションは、このフラグを有効にすると大幅な高速化が実現しますが、特定のパターンのロックがあるアプリケーションは、速度が低下することがあります。バイアス・ロックの方法の詳細は、http://www\&.oracle\&.com/technetwork/java/tuning\-139912\&.html#section4\&.2\&.5にあるJavaチューニングのホワイト・ペーパーの例を参照してください。 バイアス・ロックの使用を効にします。かなりの量の非競合の同期化がある一部のアプリケーションは、このフラグを有効にすると大幅な高速化が実現しますが、特定のパターンのロックがあるアプリケーションは、速度が低下することがあります。バイアス・ロックの方法の詳細は、http://www\&.oracle\&.com/technetwork/java/tuning\-139912\&.html#section4\&.2\&.5にあるJavaチューニングのホワイト・ペーパーの例を参照してください。
.sp .sp
デフォルトでは、このオプションは有効になっています。 デフォルトでは、このオプションは有効になっています。
.RE .RE
.PP .PP
\-XX:+UseCompressedOops \-XX:\-UseCompressedOops
.RS 4 .RS 4
圧縮されたポインタの使用を有効にします。このオプションを有効にすると、オブジェクト参照は、64ビットのポインタではなく32ビットのオフセットとして表され、これにより、32GBより小さいJavaヒープ・サイズのアプリケーションの実行時に、通常、パフォーマンスが向上します。このオプションは、64ビットのJVMでのみ機能します。 圧縮されたポインタの使用を無効にします。デフォルトではこのオプションが有効であり、Javaヒープ・サイズが32GBより小さい場合に圧縮ポインタが使用されます。このオプションを有効にすると、オブジェクト参照は、64ビットのポインタではなく32ビットのオフセットとして表され、これにより、32GBより小さいJavaヒープ・サイズのアプリケーションの実行時に、通常、パフォーマンスが向上します。このオプションは、64ビットのJVMでのみ機能します。
.sp .sp
デフォルトでは、このオプションは無効であり、圧縮ポインタは使用されません。 Javaヒープ・サイズが32GBより大きい場合にも圧縮ポインタを使用できます。\fB\-XX:ObjectAlignmentInBytes\fRオプションを参照してください。
.RE
.PP
\-XX:+UseHugeTLBFS
.RS 4
Linux用のこのオプションは、\fB\-XX:+UseLargePages\fRを指定するのと同じです。このオプションは、デフォルトでは無効になっています。このオプションは、メモリーの予約時にすべてのラージ・ページを事前に割り当てます。そのため、JVMはラージ・ページ・メモリー領域を動的に拡張または縮小できません。この動作を行う場合は、\fB\-XX:UseTransparentHugePages\fRを参照してください。
.sp
詳細は、"ラージ・ページ"を参照してください。
.RE .RE
.PP .PP
\-XX:+UseLargePages \-XX:+UseLargePages
.RS 4 .RS 4
大きいページのメモリーの使用を有効にします。このオプションはデフォルトで有効になっています。大きいページのメモリーの使用を無効にするには、\fB\-XX:\-UseLargePages\fRを指定します ラージ・ページのメモリーの使用を有効にします。デフォルトでは、このオプションは無効であり、ラージ・ページのメモリーは使用されません
.sp .sp
詳細は、http://www\&.oracle\&.com/technetwork/java/javase/tech/largememory\-jsp\-137182\&.htmlにある大きいメモリー・ページ用のJavaサポートを参照してください。 詳細は、"ラージ・ページ"を参照してください。
.RE .RE
.PP .PP
\-XX:+UseMembar \-XX:+UseMembar
...@@ -1197,6 +1232,13 @@ JVM ...@@ -1197,6 +1232,13 @@ JVM
\fBperfdata\fR機能を有効にします。このオプションはデフォルトで有効になっており、JVMのモニタリングおよびパフォーマンス・テストが可能になります。これを無効にすると、\fBhsperfdata_userid\fRディレクトリの作成を抑制します。\fBperfdata\fR機能を無効にするには、\fB\-XX:\-UsePerfData\fRを指定します。 \fBperfdata\fR機能を有効にします。このオプションはデフォルトで有効になっており、JVMのモニタリングおよびパフォーマンス・テストが可能になります。これを無効にすると、\fBhsperfdata_userid\fRディレクトリの作成を抑制します。\fBperfdata\fR機能を無効にするには、\fB\-XX:\-UsePerfData\fRを指定します。
.RE .RE
.PP .PP
\-XX:+UseTransparentHugePages
.RS 4
Linuxでは、動的に拡張または縮小できるラージ・ページの使用を有効化してください。このオプションは、デフォルトでは無効になっています。OSが他のページを移動してヒュージ・ページを作成するため、透過的ヒュージ・ページでパフォーマンスの問題が検出される場合があります。このオプションは試験的に使用できます。
.sp
詳細は、"ラージ・ページ"を参照してください。
.RE
.PP
\-XX:+AllowUserSignalHandlers \-XX:+AllowUserSignalHandlers
.RS 4 .RS 4
アプリケーションによるシグナル・ハンドラのインストールを有効にします。デフォルトでは、このオプションは無効であり、アプリケーションはシグナル・ハンドラをインストールすることは許可されていません。 アプリケーションによるシグナル・ハンドラのインストールを有効にします。デフォルトでは、このオプションは無効であり、アプリケーションはシグナル・ハンドラをインストールすることは許可されていません。
...@@ -1569,7 +1611,7 @@ JIT ...@@ -1569,7 +1611,7 @@ JIT
.PP .PP
\-XX:CompileThreshold=\fIinvocations\fR \-XX:CompileThreshold=\fIinvocations\fR
.RS 4 .RS 4
コンパイル前に解釈されたメソッド呼出しの数を設定します。デフォルトでは、サーバーJVMでは、JITコンパイラは、10,000の解釈されたメソッド呼出しを実行して、効率的なコンパイルのための情報を収集します。クライアントJVMの場合、デフォルト設定は1,500呼出しです。次の例では、解釈されたメソッド呼出しの数を5,000に設定する方法を示します。 コンパイル前に解釈されたメソッド呼出しの数を設定します。デフォルトでは、サーバーJVMでは、JITコンパイラは、10,000の解釈されたメソッド呼出しを実行して、効率的なコンパイルのための情報を収集します。クライアントJVMの場合、デフォルト設定は1,500呼出しです。層コンパイルが有効な場合、このオプションは無視されます。オプション\fB\-XX:+TieredCompilation\fRを参照してください。次の例では、解釈されたメソッド呼出しの数を5,000に設定する方法を示します。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
...@@ -1591,7 +1633,7 @@ JIT ...@@ -1591,7 +1633,7 @@ JIT
.PP .PP
\-XX:InitialCodeCacheSize=\fIsize\fR \-XX:InitialCodeCacheSize=\fIsize\fR
.RS 4 .RS 4
初期コード・キャッシュ・サイズ(バイト単位)を設定します。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。デフォルト値は500KBに設定されています。次の例では、初期コード・キャッシュ・サイズを32KBに設定する方法を示します。 初期コード・キャッシュ・サイズ(バイト単位)を設定します。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。デフォルト値は500KBに設定されています。初期コード・キャッシュ・サイズをシステムの最小メモリー・ページ・サイズより小さくしないでください。次の例では、初期コード・キャッシュ・サイズを32KBに設定する方法を示します。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
...@@ -1711,7 +1753,17 @@ JIT ...@@ -1711,7 +1753,17 @@ JIT
.PP .PP
\-XX:ReservedCodeCacheSize=\fIsize\fR \-XX:ReservedCodeCacheSize=\fIsize\fR
.RS 4 .RS 4
JITコンパイルされたコードの最大コード・キャッシュ・サイズ(バイト単位)を設定します。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。このオプションは\fB\-Xmaxjitcodesize\fRと同等です。 JITコンパイルされたコードの最大コード・キャッシュ・サイズ(バイト単位)を設定します。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。このオプションは2GBの制限があります。そうでない場合は、エラーが生成されます。最大コード・キャッシュ・サイズを初期コード・キャッシュ・サイズより小さくしないでください。\fB\-XX:InitialCodeCacheSize\fRオプションを参照してください。このオプションは\fB\-Xmaxjitcodesize\fRと同等です。
.RE
.PP
\-XX:RTMAbortRatio=\fIabort_ratio\fR
.RS 4
RTM中止率は、すべての実行済RTMトランザクションに対するパーセンテージ(%)として指定されます。中止されたトランザクション数がこの率を超えた場合、コンパイルされたコードが非最適化されます。この率は、\fB\-XX:+UseRTMDeopt\fRオプションが有効な場合に使用されます。このオプションのデフォルト値は50です。つまり、すべてのトランザクションの50%が中止された場合、コンパイルされたコードが非最適化されます。
.RE
.PP
\-XX:RTMRetryCount=\fInumber_of_retries\fR
.RS 4
中止またはビジーの場合、RTMロック・コードは、標準のロック・メカニズムにフォールバックする前にこのオプションによって指定された回数再試行されます。このオプションのデフォルト値は5です。\fB\-XX:UseRTMLocking\fRオプションを有効化する必要があります。
.RE .RE
.PP .PP
\-XX:+TieredCompilation \-XX:+TieredCompilation
...@@ -1751,39 +1803,52 @@ UseAES ...@@ -1751,39 +1803,52 @@ UseAES
カード表の更新前に、カードがすでにマークされているかどうかのチェックを有効にします。このオプションは、デフォルトでは無効になっており、複数のソケットを持つマシン上でのみ使用する必要があります。これにより、同時操作にかなり依存しているJavaアプリケーションのパフォーマンスが向上します。Java HotSpot Server VMのみが、このオプションをサポートしています。 カード表の更新前に、カードがすでにマークされているかどうかのチェックを有効にします。このオプションは、デフォルトでは無効になっており、複数のソケットを持つマシン上でのみ使用する必要があります。これにより、同時操作にかなり依存しているJavaアプリケーションのパフォーマンスが向上します。Java HotSpot Server VMのみが、このオプションをサポートしています。
.RE .RE
.PP .PP
\-XX:+UseSuperWord \-XX:+UseRTMDeopt
.RS 4 .RS 4
スカラー演算のスーパーワード演算への変換を有効にします。このオプションはデフォルトで有効になっています。スカラー演算のスーパーワード演算への変換を無効にするには、\fB\-XX:\-UseSuperWord\fRを指定します。Java HotSpot Server VMのみが、このオプションをサポートしています。 中止率に応じて、RTMロックを自動調整します。この率は、\fB\-XX:RTMAbortRatio\fRオプションによって指定されます。中止されたトランザクション数が中止率を超えた場合、ロックを含むメソッドがすべてのロックで標準のロックとして非最適化および再コンパイルされます。このオプションは、デフォルトでは無効になっています。\fB\-XX:+UseRTMLocking\fRオプションを有効化する必要があります。
.RE .RE
.SS "試験的なJITコンパイラ・オプション"
.PP .PP
この項のRestricted Transactional Memory (RTM)のロック機能に関連するオプションは試験的なもので、Java SE 8u20で正式にサポートされていません。これらを使用するには、\fB\-XX:+UnlockExperimentalVMOptions\fRオプションを有効化する必要があります。これらのオプションは、Transactional Synchronization Extensions (TSX)をサポートするx86 CPU上のJava HotSpot Server VMに対してのみ使用可能です。 \-XX:+UseRTMLocking
.RS 4
フォールバック・ハンドラとして標準のロック・メカニズムを使用して、展開されたすべてのロックに対してRestricted Transactional Memory (RTM)ロック・コードを生成します。このオプションは、デフォルトでは無効になっています。RTMに関連するオプションは、Transactional Synchronization Extensions (TSX)をサポートするx86 CPU上のJava HotSpot Server VMに対してのみ使用可能です。
.sp
RTMは、x86命令セット拡張でマルチスレッド・アプリケーションの作成を容易にするIntelのTSXの一部です。RTMでは、新しい命令
\fBXBEGIN\fR、\fBXABORT\fR、\fBXEND\fRおよび\fBXTEST\fRが導入されています。\fBXBEGIN\fRおよび\fBXEND\fR命令は、トランザクションとして実行するための命令セットを囲みます。トランザクションの実行時に競合が見つからなかった場合、メモリーとレジスタの変更が、\fBXEND\fR命令で同時にコミットされます。\fBXABORT\fR命令ではトランザクションを明示的に中止でき、\fBXEND\fR命令では命令セットがトランザクション内で実行中かどうかを確認できます。
.sp
トランザクションのロックは、別のスレッドが同じトランザクションにアクセスしようとしたときに展開されます。したがって、そのトランザクションへのアクセスを最初にリクエストしなかったスレッドはブロックされます。RTMでは、トランザクションが中止または失敗した場合のために、フォールバックの操作セットを指定する必要があります。RTMロックとは、TSXのシステムに委譲されているロックです。
.sp
RTMにより、重要なリージョンにおいて衝突が少なく競合度の高いロックのパフォーマンスが向上されます(これは、複数のスレッドによって同時にアクセスできないコードです)。また、RTMにより、粗粒度ロックのパフォーマンスも向上されますが、一般的にマルチスレッド・アプリケーションでのパフォーマンスはよくありません。(粗粒度ロックとは、ロックの取得および解放のオーバーヘッドを最小化するために長い期間ロックを保持する戦略であり、一方、細粒度ロックとは必要な場合のみロックし可能なかぎり早期にロック解除することで最大限の並行処理の達成を試みる戦略です。)さらに、異なるスレッドによって使用されている軽度な競合ロックの場合、RTMにより、誤ったキャッシュ・ライン共有(キャッシュ・ライン・ピンポンとも呼ばれる)を削減できます。これは、異なるプロセッサからの複数のスレッドが異なるリソースにアクセスしている場合に発生しますが、リソースは同じキャッシュ・ラインを共有します。結果として、プロセッサは他のプロセッサのキャッシュ・ラインを繰り返し無効にし、これにより、キャッシュではなくメイン・メモリーからの読取りが強制されます。
.RE
.PP .PP
\-XX:RTMAbortRatio=\fIabort_ratio\fR \-XX:+UseSHA
.RS 4 .RS 4
RTM中止率は、すべての実行済RTMトランザクションに対するパーセンテージ(%)として指定されます。中止されたトランザクション数がこの率を超えた場合、コンパイルされたコードが非最適化されます。この率は、\fB\-XX:+UseRTMDeopt\fRオプションが有効な場合に使用されます。このオプションのデフォルト値は50です。つまり、すべてのトランザクションの50%が中止された場合、コンパイルされたコードが非最適化されます。 SPARCハードウェアのSHA暗号化ハッシュ関数のハードウェアベースの組込みを有効にします。\fBUseSHA\fRは、\fBUseSHA1Intrinsics\fR、\fBUseSHA256Intrinsics\fRおよび\fBUseSHA512Intrinsics\fRオプションと組み合せて使用します。
.sp
\fBUseSHA\fRおよび\fBUseSHA*Intrinsics\fRフラグはデフォルトで有効であり、SPARC T4以上のJava HotSpot Server VM 64ビットでのみサポートされます。
.sp
SHA操作に対して\fBsun\&.security\&.provider\&.Sun\fRプロバイダを使用する場合のみ、この機能を適用できます。
.sp
すべてのハードウェアベースのSHA組込みを無効化するには、\fB\-XX:\-UseSHA\fRを指定してください。特定のSHA組込みのみ無効化するには、適切な対応するオプションを使用してください。たとえば、\fB\-XX:\-UseSHA256Intrinsics\fRなどです。
.RE .RE
.PP .PP
\-XX:RTMRetryCount=\fInumber_of_retries\fR \-XX:+UseSHA1Intrinsics
.RS 4 .RS 4
中止またはビジーの場合、RTMロック・コードは、標準のロック・メカニズムにフォールバックする前にこのオプションによって指定された回数再試行されます。このオプションのデフォルト値は5です。\fB\-XX:UseRTMLocking\fRオプションを有効化する必要があります。 SHA\-1暗号化ハッシュ関数の組込みを有効にします。
.RE .RE
.PP .PP
\-XX:+UseRTMDeopt \-XX:+UseSHA256Intrinsics
.RS 4 .RS 4
中止率に応じて、RTMロックを自動調整します。この率は、\fB\-XX:RTMAbortRatio\fRオプションによって指定されます。中止されたトランザクション数が中止率を超えた場合、ロックを含むメソッドがすべてのロックで標準のロックとして非最適化および再コンパイルされます。このオプションは、デフォルトでは無効になっています。\fB\-XX:UseRTMLocking\fRオプションを有効化する必要があります。 SHA\-224およびSHA\-256暗号化ハッシュ関数の組込みを有効にします。
.RE .RE
.PP .PP
\-XX:+UseRTMLocking \-XX:+UseSHA512Intrinsics
.RS 4 .RS 4
フォールバック・ハンドラとして標準のロック・メカニズムを使用して、展開されたすべてのロックに対してRestricted Transactional Memory (RTM)ロック・コードを生成します。このオプションは、デフォルトでは無効になっています。 SHA\-384およびSHA\-512暗号化ハッシュ関数の組込みを有効にします。
.sp .RE
RTMは、x86命令セット拡張でマルチスレッド・アプリケーションの作成を容易にするIntelのTransactional Synchronization Extensions (TSX)の一部です。RTMでは、新しい命令 .PP
\fBXBEGIN\fR、\fBXABORT\fR、\fBXEND\fRおよび\fBXTEST\fRが導入されています。\fBXBEGIN\fRおよび\fBXEND\fR命令は、トランザクションとして実行するための命令セットを囲みます。トランザクションの実行時に競合が見つからなかった場合、メモリーとレジスタの変更が、\fBXEND\fR命令で同時にコミットされます。\fBXABORT\fR命令ではトランザクションを明示的に中止でき、\fBXEND\fR命令では命令セットがトランザクション内で実行中かどうかを確認できます。 \-XX:+UseSuperWord
.sp .RS 4
トランザクションのロックは、別のスレッドが同じトランザクションにアクセスしようとしたときに展開されます。したがって、そのトランザクションへのアクセスを最初にリクエストしなかったスレッドはブロックされます。RTMでは、トランザクションが中止または失敗した場合のために、フォールバックの操作セットを指定する必要があります。RTMロックとは、TSXのシステムに委譲されているロックです。 スカラー演算のスーパーワード演算への変換を有効にします。このオプションはデフォルトで有効になっています。スカラー演算のスーパーワード演算への変換を無効にするには、\fB\-XX:\-UseSuperWord\fRを指定します。Java HotSpot Server VMのみが、このオプションをサポートしています。
.sp
RTMにより、重要なリージョンにおいて衝突が少なく競合度の高いロックのパフォーマンスが向上されます(これは、複数のスレッドによって同時にアクセスできないコードです)。また、RTMにより、粗粒度ロックのパフォーマンスも向上されますが、一般的にマルチスレッド・アプリケーションでのパフォーマンスはよくありません。(粗粒度ロックとは、ロックの取得および解放のオーバーヘッドを最小化するために長い期間ロックを保持する戦略であり、一方、細粒度ロックとは必要な場合のみロックし可能なかぎり早期にロック解除することで最大限の並行処理の達成を試みる戦略です。)さらに、異なるスレッドによって使用されている軽度な競合ロックの場合、RTMにより、誤ったキャッシュ・ライン共有(キャッシュ・ライン・ピンポンとも呼ばれる)を削減できます。これは、異なるプロセッサからの複数のスレッドが異なるリソースにアクセスしている場合に発生しますが、リソースは同じキャッシュ・ラインを共有します。結果として、プロセッサは他のプロセッサのキャッシュ・ラインを繰り返し無効にし、これにより、キャッシュではなくメイン・メモリーからの読取りが強制されます。
.RE .RE
.SS "高度なサービスアビリティ・オプション" .SS "高度なサービスアビリティ・オプション"
.PP .PP
...@@ -1855,7 +1920,7 @@ RTM ...@@ -1855,7 +1920,7 @@ RTM
.PP .PP
\-XX:+PrintConcurrentLocks \-XX:+PrintConcurrentLocks
.RS 4 .RS 4
次の印刷を有効化します: j ロック(次の後) \- イベント。デフォルトでは、このオプションは無効です。 印刷を有効にします ロック(次の後) \- イベント。デフォルトでは、このオプションは無効です。
.sp .sp
\fB[Control]+[C]\fRイベント(\fBSIGTERM\fR)後に\fBjava\&.util\&.concurrent\fRロックの印刷を有効にします。デフォルトでは、このオプションは無効です。 \fB[Control]+[C]\fRイベント(\fBSIGTERM\fR)後に\fBjava\&.util\&.concurrent\fRロックの印刷を有効にします。デフォルトでは、このオプションは無効です。
.sp .sp
...@@ -2018,7 +2083,7 @@ G1 ...@@ -2018,7 +2083,7 @@ G1
.PP .PP
\-XX:InitialHeapSize=\fIsize\fR \-XX:InitialHeapSize=\fIsize\fR
.RS 4 .RS 4
メモリー割当てプールの初期サイズ(バイト単位)を設定します。指定する値は、0、または1MBより大きい1024の倍数のいずれかにする必要があります。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。デフォルト値は、実行時にシステム構成に基づいて選択されます。詳細は、http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gc\-ergonomics\&.htmlにあるガベージ・コレクタ・エルゴノミックを参照してください。 メモリー割当てプールの初期サイズ(バイト単位)を設定します。指定する値は、0、または1MBより大きい1024の倍数のいずれかにする必要があります。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。デフォルト値は、実行時にシステム構成に基づいて選択されます。http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gctuning/index\&.htmlの\fIJava SE HotSpot仮想マシンのガベージ・コレクション・チューニング・ガイド\fRのエルゴノミクスに関する項を参照してください。
.sp .sp
次の例では、割り当てられたメモリーのサイズを様々な単位を使用して6MBに設定する方法を示します。 次の例では、割り当てられたメモリーのサイズを様々な単位を使用して6MBに設定する方法を示します。
.sp .sp
...@@ -2109,7 +2174,7 @@ G1 ...@@ -2109,7 +2174,7 @@ G1
.PP .PP
\-XX:MaxHeapSize=\fIsize\fR \-XX:MaxHeapSize=\fIsize\fR
.RS 4 .RS 4
メモリー割当てプールの最大サイズ(バイト単位)を設定します。指定する値は、2MBより大きい1024の倍数にする必要があります。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。デフォルト値は、実行時にシステム構成に基づいて選択されます。サーバー・デプロイメントでは、\fB\-XX:InitialHeapSize\fRおよび\fB\-XX:MaxHeapSize\fRは通常同じ値に設定されます。詳細は、http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gc\-ergonomics\&.htmlにあるガベージ・コレクタ・エルゴノミックを参照してください。 メモリー割当てプールの最大サイズ(バイト単位)を設定します。指定する値は、2MBより大きい1024の倍数にする必要があります。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。デフォルト値は、実行時にシステム構成に基づいて選択されます。サーバー・デプロイメントでは、\fB\-XX:InitialHeapSize\fRおよび\fB\-XX:MaxHeapSize\fRは通常同じ値に設定されます。http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gctuning/index\&.htmlの\fIJava SE HotSpot仮想マシンのガベージ・コレクション・チューニング・ガイド\fRのエルゴノミクスに関する項を参照してください。
.sp .sp
次の例では、割り当てられたメモリーの許可される最大サイズを様々な単位を使用して80MBに設定する方法を示します。 次の例では、割り当てられたメモリーの許可される最大サイズを様々な単位を使用して80MBに設定する方法を示します。
.sp .sp
...@@ -2480,6 +2545,13 @@ CMS ...@@ -2480,6 +2545,13 @@ CMS
シリアル・ガベージ・コレクタの使用を有効にします。ガベージ・コレクションから特別な機能を必要としない、小規模で単純なアプリケーションの場合には、これは一般に最適な選択です。デフォルトでは、このオプションは無効になっており、コレクタは、マシンの構成およびJVMのタイプに基づいて、自動的に選択されます。 シリアル・ガベージ・コレクタの使用を有効にします。ガベージ・コレクションから特別な機能を必要としない、小規模で単純なアプリケーションの場合には、これは一般に最適な選択です。デフォルトでは、このオプションは無効になっており、コレクタは、マシンの構成およびJVMのタイプに基づいて、自動的に選択されます。
.RE .RE
.PP .PP
\-XX:+UseSHM
.RS 4
Linuxでは、JVMで共有メモリーを使用してラージ・ページを設定できるようにします。
.sp
詳細は、"ラージ・ページ"を参照してください。
.RE
.PP
\-XX:+UseStringDeduplication \-XX:+UseStringDeduplication
.RS 4 .RS 4
文字列の重複除外を有効化します。デフォルトでは、このオプションは無効です。このオプションを使用するには、ガベージファースト(G1)・ガベージ・コレクタを有効にする必要があります。\fB\-XX:+UseG1GC\fRオプションを参照してください。 文字列の重複除外を有効化します。デフォルトでは、このオプションは無効です。このオプションを使用するには、ガベージファースト(G1)・ガベージ・コレクタを有効にする必要があります。\fB\-XX:+UseG1GC\fRオプションを参照してください。
...@@ -2502,7 +2574,7 @@ CMS ...@@ -2502,7 +2574,7 @@ CMS
.PP .PP
\-Xrun\fIlibname\fR \-Xrun\fIlibname\fR
.RS 4 .RS 4
指定したデバッグ/プロファイのライブラリをロードします。このオプションは、\fB\-agentlib\fRオプションに取って代わられました。 指定したデバッグ/プロファイリングのライブラリをロードします。このオプションは、\fB\-agentlib\fRオプションに取って代わられました。
.RE .RE
.PP .PP
\-XX:CMSIncrementalDutyCycle=\fIpercent\fR \-XX:CMSIncrementalDutyCycle=\fIpercent\fR
...@@ -2563,9 +2635,7 @@ GC ...@@ -2563,9 +2635,7 @@ GC
.PP .PP
次の例では、スループットの最適化またはレスポンス時間の短縮化のいずれかを行うための、試験的なチューニング・フラグの使用方法を示します。 次の例では、スループットの最適化またはレスポンス時間の短縮化のいずれかを行うための、試験的なチューニング・フラグの使用方法を示します。
.PP .PP
\fB例 1\fR \fB例 1 \fRスループットを向上するためのチューニング
.br
スループットを向上するためのチューニング
.RS 4 .RS 4
.sp .sp
.if n \{\ .if n \{\
...@@ -2580,9 +2650,7 @@ GC ...@@ -2580,9 +2650,7 @@ GC
.\} .\}
.RE .RE
.PP .PP
\fB例 2\fR \fB例 2 \fRレスポンス時間を速くするためのチューニング
.br
レスポンス時間を速くするためのチューニング
.RS 4 .RS 4
.sp .sp
.if n \{\ .if n \{\
...@@ -2596,6 +2664,188 @@ GC ...@@ -2596,6 +2664,188 @@ GC
.RE .RE
.\} .\}
.RE .RE
.SH "ラージ・ページ"
.PP
ヒュージ・ページとも呼ばれるラージ・ページは、標準のメモリー・ページ・サイズ(プロセッサおよびオペレーティング・システムによって異なります)よりはるかに大きいメモリー・ページです。ラージ・ページは、プロセッサのTranslation\-Lookaside Bufferを最適化します。
.PP
Translation\-Lookaside Buffer (TLB)は、最近使用された仮想から物理へのアドレス変換を保持するページ変換キャッシュです。TLBは、少ないシステム・リソースです。プロセッサが複数のメモリー・アクセスが必要な場合のある階層ページ表から読み取る必要があるため、TLBミスは負荷がかかる可能性があります。大きいメモリー・ページ・サイズを使用して、単一のTLBエントリで大きいメモリー範囲を表すことができます。TLB不足が少なくなり、メモリー集約型のアプリケーションのパフォーマンスが向上する可能性があります。
.PP
ただし、ラージ・ページのページ・メモリーは、システムのパフォーマンスに悪影響を与える場合があります。たとえば、大量のメモリーがアプリケーションで確保される場合、通常メモリー不足や他のアプリケーションの過剰なページングが発生し、システム全体が遅くなる可能性があります。また、長時間稼働しているシステムは、過剰な断片化が発生する可能性があります。これにより、十分な大きさのページ・メモリーを予約できない可能性があります。これが発生した場合、OSまたはJVMのいずれかが通常のページの使用に戻ります。
.SS "ラージ・ページのサポート"
.PP
SolarisおよびLinuxは、ラージ・ページをサポートします。
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBSolaris\fR
.RS 4
.PP
Solaris 9以上には、Multiple Page Size Support(MPSS)が含まれています。追加の構成は必要ありません。http://www\&.oracle\&.com/technetwork/server\-storage/solaris10/overview/solaris9\-features\-scalability\-135663\&.htmlを参照してください。
.RE
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBLinux\fR
.RS 4
.PP
2\&.6カーネルは、ラージ・ページをサポートします。一部のベンダーは、2\&.4ベースのリリースのコードをバックポートしています。システムがラージ・ページ・メモリーをサポートしているかどうかを確認するには、次を試行してください:
.sp
.if n \{\
.RS 4
.\}
.nf
\fB# cat /proc/meminfo | grep Huge\fR
\fBHugePages_Total: 0\fR
\fBHugePages_Free: 0\fR
\fBHugepagesize: 2048 kB\fR
.fi
.if n \{\
.RE
.\}
.PP
出力に3つの"Huge"変数が示されている場合、システムはラージ・ページ・メモリーをサポートしていますが、構成する必要があります。コマンドが何も出力しない場合、システムはラージ・ページをサポートしていません。ラージ・ページ・メモリーを使用するシステムを構成するには、\fBroot\fRとしてログインして、次の手順を実行してください:
.sp
.RS 4
.ie n \{\
\h'-04' 1.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 1." 4.2
.\}
オプション\fB\-XX:+UseSHM\fR(\fB\-XX:+UseHugeTLBFS\fRのかわり)を使用する場合、\fBSHMMAX\fR値を増やしてください。Javaヒープ・サイズより大きくする必要があります。4GB以下の物理RAMを使用したシステムで、次によりすべてのメモリーが共有可能になります:
.sp
.if n \{\
.RS 4
.\}
.nf
\fB# echo 4294967295 > /proc/sys/kernel/shmmax\fR
.fi
.if n \{\
.RE
.\}
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 2.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 2." 4.2
.\}
オプション\fB\-XX:+UseSHM\fRまたは\fB\-XX:+UseHugeTLBFS\fRを使用する場合、ラージ・ページの数を指定してください。次の例では、4GBシステムの3GBがラージ・ページに予約されます(2048KBのラージ・ページ・サイズを仮定する場合、3GB = 3 * 1024MB = 3072MB = 3072 * 1024KB = 3145728KB and 3145728KB / 2048KB = 1536):
.sp
.if n \{\
.RS 4
.\}
.nf
\fB# echo 1536 > /proc/sys/vm/nr_hugepages\fR
.fi
.if n \{\
.RE
.\}
.RE
.if n \{\
.sp
.\}
.RS 4
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB注記\fR
.ps -1
.br
.TS
allbox tab(:);
l.
T{
注意
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
システムを再起動した後に\fB/proc\fRに含まれる値がリセットされるので注意してください。そのため、初期化スクリプト(\fBrc\&.local\fRや\fBsysctl\&.conf\fRなど)で設定できます。
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
OSカーネル・パラメータ\fB/proc/sys/kernel/shmmax\fRまたは\fB/proc/sys/vm/nr_hugepages\fRを構成(またはサイズ変更)する場合、JavaプロセスがJavaヒープ以外の領域に対してラージ・ページを割り当てることがあります。これらの手順を使用して、次の領域に対してラージ・ページを割り当てることができます:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Javaヒープ
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Permanent世代
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
コード・キャッシュ
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
パラレルGCのマーキング・ビットマップ・データ構造
.RE
.sp
その結果、Javaヒープのサイズに\fBnr_hugepages\fRパラメータを構成すると、領域のサイズが非常に大きいためにJVMがPermanent世代およびラージ・ページのコード・キャッシュ領域の割当てに失敗する場合があります。
.RE
T}
.TE
.sp 1
.sp .5v
.RE
.RE
.SH "終了ステータス" .SH "終了ステータス"
.PP .PP
通常、次の終了値が起動ツールから返されるのは、起動元が不正な引数で呼び出されたか、深刻なエラーが発生したか、あるいはJVMにより例外がスローされた場合です。ただし、Javaアプリケーションは、API呼出し\fBSystem\&.exit(exitValue)\fRを使用して任意の値を返すことを選択することもできます。値は次のとおりです。 通常、次の終了値が起動ツールから返されるのは、起動元が不正な引数で呼び出されたか、深刻なエラーが発生したか、あるいはJVMにより例外がスローされた場合です。ただし、Javaアプリケーションは、API呼出し\fBSystem\&.exit(exitValue)\fRを使用して任意の値を返すことを選択することもできます。値は次のとおりです。
...@@ -2666,6 +2916,17 @@ javah(1) ...@@ -2666,6 +2916,17 @@ javah(1)
.\} .\}
jar(1) jar(1)
.RE .RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
jstat(1)
.RE
.br .br
'pl 8.5i 'pl 8.5i
'bp 'bp
...@@ -23,14 +23,15 @@ ...@@ -23,14 +23,15 @@
.\" .\"
.\" Title: javac .\" Title: javac
.\" Language: Japanese .\" Language: Japanese
.\" Date: 2014年8月8 .\" Date: 2015年3月3
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "javac" "1" "2014年8月8日" "JDK 8" "基本ツール" .TH "javac" "1" "2015年3月3日" "JDK 8" "基本ツール"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
...@@ -154,7 +155,7 @@ javac \- Java ...@@ -154,7 +155,7 @@ javac \- Java
.PP .PP
\-cp \fIpath\fR or \-classpath \fIpath\fR \-cp \fIpath\fR or \-classpath \fIpath\fR
.RS 4 .RS 4
ユーザー・クラス・ファイル、および(オプションで)注釈プロセッサとソース・ファイルを検索する場所を指定します。このクラス・パスは\fBCLASSPATH\fR環境変数のユーザー・クラス・パスをオーバーライドします。\fBCLASSPATH\fR、\fB\-cp\fR、\fB\-classpath\fRのいずれも指定されていない場合、ユーザーの\fIクラス・パス\fRは、現在のディレクトリになります。Setting the Class Path を参照してください。 ユーザー・クラス・ファイル、および(オプションで)注釈プロセッサとソース・ファイルを検索する場所を指定します。このクラス・パスは\fBCLASSPATH\fR環境変数のユーザー・クラス・パスをオーバーライドします。\fBCLASSPATH\fR、\fB\-cp\fR、\fB\-classpath\fRのいずれも指定されていない場合、ユーザーの\fIクラス・パス\fRは、現在のディレクトリになります。クラス・パスの設定 を参照してください。
.sp .sp
\fB\-sourcepath\fRオプションが指定されていない場合、ソース・ファイルもユーザー・クラス・パスから検索されます。 \fB\-sourcepath\fRオプションが指定されていない場合、ソース・ファイルもユーザー・クラス・パスから検索されます。
.sp .sp
...@@ -1122,9 +1123,7 @@ varargs ...@@ -1122,9 +1123,7 @@ varargs
.PP .PP
\fBjavac\fRコマンドを実行するときに、各引数ファイルのパスと名前の先頭にアットマーク(@)文字を付けて渡します。\fBjavac\fRコマンドは、アットマーク(@)で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。 \fBjavac\fRコマンドを実行するときに、各引数ファイルのパスと名前の先頭にアットマーク(@)文字を付けて渡します。\fBjavac\fRコマンドは、アットマーク(@)で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。
.PP .PP
\fB例 1\fR \fB例 1 \fR単一の引数ファイル
.br
単一の引数ファイル
.RS 4 .RS 4
\fBargfile\fRという名前の単一の引数ファイルを使用して、すべての\fBjavac\fR引数を格納する場合は、次のように指定します。 \fBargfile\fRという名前の単一の引数ファイルを使用して、すべての\fBjavac\fR引数を格納する場合は、次のように指定します。
.sp .sp
...@@ -1141,9 +1140,7 @@ varargs ...@@ -1141,9 +1140,7 @@ varargs
この引数ファイルには、例2で示されている両方のファイルの内容を入れることができます。 この引数ファイルには、例2で示されている両方のファイルの内容を入れることができます。
.RE .RE
.PP .PP
\fB例 2\fR \fB例 2 \fR2つの引数ファイル
.br
2つの引数ファイル
.RS 4 .RS 4
\fBjavac\fRオプション用とソース・ファイル名用に、2つの引数ファイルを作成できます。次のリストには、行の継続文字はありません。 \fBjavac\fRオプション用とソース・ファイル名用に、2つの引数ファイルを作成できます。次のリストには、行の継続文字はありません。
.sp .sp
...@@ -1216,9 +1213,7 @@ varargs ...@@ -1216,9 +1213,7 @@ varargs
.\} .\}
.RE .RE
.PP .PP
\fB例 3\fR \fB例 3 \fRパスを使用した引数ファイル
.br
パスを使用した引数ファイル
.RS 4 .RS 4
引数ファイルはパスを指定できますが、ファイル内のすべてのファイル名は、(\fBpath1\fRや\fBpath2\fRではなく)次のように現在の作業ディレクトリに相対的となります。 引数ファイルはパスを指定できますが、ファイル内のすべてのファイル名は、(\fBpath1\fRや\fBpath2\fRではなく)次のように現在の作業ディレクトリに相対的となります。
.sp .sp
...@@ -1317,9 +1312,7 @@ varargs ...@@ -1317,9 +1312,7 @@ varargs
名前が\fBcom\&.sun\&.tools\&.javac\fRで始まるパッケージ(\fBcom\&.sun\&.tools\&.javac\fRのサブパッケージ)で検出される他のすべてのクラスおよびメソッドは、完全に内部用であり、いつでも変更される可能性があります。 名前が\fBcom\&.sun\&.tools\&.javac\fRで始まるパッケージ(\fBcom\&.sun\&.tools\&.javac\fRのサブパッケージ)で検出される他のすべてのクラスおよびメソッドは、完全に内部用であり、いつでも変更される可能性があります。
.SH "例" .SH "例"
.PP .PP
\fB例 1\fR \fB例 1 \fR簡単なプログラムのコンパイル
.br
簡単なプログラムのコンパイル
.RS 4 .RS 4
この例では、greetingsディレクトリで\fBHello\&.java\fRソース・ファイルをコンパイルする方法を示しています。\fBHello\&.java\fRで定義されたクラスは、\fBgreetings\&.Hello\fRと呼ばれます。greetingsディレクトリは、ソース・ファイルとクラス・ファイルの両方があるパッケージ・ディレクトリで、現在のディレクトリのすぐ下にあります。これにより、デフォルトのユーザー・クラス・パスを使用できるようになります。また、\fB\-d\fRオプションを使用して別の出力先ディレクトリを指定する必要もありません。 この例では、greetingsディレクトリで\fBHello\&.java\fRソース・ファイルをコンパイルする方法を示しています。\fBHello\&.java\fRで定義されたクラスは、\fBgreetings\&.Hello\fRと呼ばれます。greetingsディレクトリは、ソース・ファイルとクラス・ファイルの両方があるパッケージ・ディレクトリで、現在のディレクトリのすぐ下にあります。これにより、デフォルトのユーザー・クラス・パスを使用できるようになります。また、\fB\-d\fRオプションを使用して別の出力先ディレクトリを指定する必要もありません。
.sp .sp
...@@ -1372,9 +1365,7 @@ greetings\&.Hello ...@@ -1372,9 +1365,7 @@ greetings\&.Hello
.\} .\}
.RE .RE
.PP .PP
\fB例 2\fR \fB例 2 \fR複数のソース・ファイルのコンパイル
.br
複数のソース・ファイルのコンパイル
.RS 4 .RS 4
この例では、\fBgreetings\fRパッケージのソース・ファイル\fBAloha\&.java\fR、\fBGutenTag\&.java\fR、\fBHello\&.java\fRおよび\fBHi\&.java\fRをコンパイルします。 この例では、\fBgreetings\fRパッケージのソース・ファイル\fBAloha\&.java\fR、\fBGutenTag\&.java\fR、\fBHello\&.java\fRおよび\fBHi\&.java\fRをコンパイルします。
.sp .sp
...@@ -1393,9 +1384,7 @@ greetings\&.Hello ...@@ -1393,9 +1384,7 @@ greetings\&.Hello
.\} .\}
.RE .RE
.PP .PP
\fB例 3\fR \fB例 3 \fRユーザー・クラス・パスの指定
.br
ユーザー・クラス・パスの指定
.RS 4 .RS 4
前述の例のソース・ファイルのうち1つを変更した後に、そのファイルを再コンパイルします。 前述の例のソース・ファイルのうち1つを変更した後に、そのファイルを再コンパイルします。
.sp .sp
...@@ -1450,9 +1439,7 @@ greetings\&.Hello ...@@ -1450,9 +1439,7 @@ greetings\&.Hello
.\} .\}
.RE .RE
.PP .PP
\fB例 4\fR \fB例 4 \fRソース・ファイルとクラス・ファイルの分離
.br
ソース・ファイルとクラス・ファイルの分離
.RS 4 .RS 4
次の例では、\fBjavac\fRを使用して、JVM 1\&.7上で実行するコードをコンパイルします。 次の例では、\fBjavac\fRを使用して、JVM 1\&.7上で実行するコードをコンパイルします。
.sp .sp
...@@ -1486,9 +1473,7 @@ greetings\&.Hello ...@@ -1486,9 +1473,7 @@ greetings\&.Hello
適切なバージョンのブートストラップ・クラスを指定しない場合、コンパイラは古い言語仕様(この例では、バージョン1\&.7のJavaプログラミング言語)を新しいブートストラップ・クラスと組み合せて使用します。その結果、存在しないメソッドへの参照が含まれていることがあるため、クラス・ファイルが古いプラットフォーム(この場合はJava SE 7)で動作しない可能性があります。 適切なバージョンのブートストラップ・クラスを指定しない場合、コンパイラは古い言語仕様(この例では、バージョン1\&.7のJavaプログラミング言語)を新しいブートストラップ・クラスと組み合せて使用します。その結果、存在しないメソッドへの参照が含まれていることがあるため、クラス・ファイルが古いプラットフォーム(この場合はJava SE 7)で動作しない可能性があります。
.RE .RE
.PP .PP
\fB例 5\fR \fB例 5 \fRクロス・コンパイル
.br
クロス・コンパイル
.RS 4 .RS 4
この例では、\fBjavac\fRを使用して、JVM 1\&.7上で実行するコードをコンパイルします。 この例では、\fBjavac\fRを使用して、JVM 1\&.7上で実行するコードをコンパイルします。
.sp .sp
...@@ -1503,7 +1488,7 @@ greetings\&.Hello ...@@ -1503,7 +1488,7 @@ greetings\&.Hello
.if n \{\ .if n \{\
.RE .RE
.\} .\}
\fB \-source 1\&.7\fRオプションにより、OldCode\&.javaのコンパイルにはリリース1\&.7(または7)のJavaプログラミング言語が使用されます。\fB\-target 1\&.7\fRオプションにより、JVM 1\&.7と互換性のあるクラス・ファイルが生成されます。ほとんどの場合、\fB\-target\fRの値は\fB\-source\fRの値になります。この例では、\fB\-target\fRオプションは省略されます。 \fB \-source 1\&.7\fRオプションにより、OldCode\&.javaのコンパイルにはリリース1\&.7(または7)のJavaプログラミング言語が使用されます。\fB\-target 1\&.7\fRオプションにより、JVM 1\&.7と互換性のあるクラス・ファイルが生成されます。
.sp .sp
\fB\-bootclasspath\fRオプションを使用して、適切なバージョンのブートストラップ・クラス(\fBrt\&.jar\fRライブラリ)を指定する必要があります。指定しない場合は、コンパイラによって次の警告が生成されます。 \fB\-bootclasspath\fRオプションを使用して、適切なバージョンのブートストラップ・クラス(\fBrt\&.jar\fRライブラリ)を指定する必要があります。指定しない場合は、コンパイラによって次の警告が生成されます。
.sp .sp
......
...@@ -23,14 +23,15 @@ ...@@ -23,14 +23,15 @@
.\" .\"
.\" Title: javadoc .\" Title: javadoc
.\" Language: Japanese .\" Language: Japanese
.\" Date: 2011年5月10 .\" Date: 2015年3月3
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "javadoc" "1" "2011年5月10日" "JDK 8" "基本ツール" .TH "javadoc" "1" "2015年3月3日" "JDK 8" "基本ツール"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
...@@ -359,7 +360,7 @@ package\&.html ...@@ -359,7 +360,7 @@ package\&.html
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
処理できるようにコメントをコピーします。package\&.htmlの場合、\fBjavadoc\fRコマンドは、\fB<body>\fRと\fB</body>\fR 処理できるようにコメントをコピーします。package\&.htmlの場合、\fBjavadoc\fRコマンドは、\fB<body>\fRと\fB</body>\fR
HTMLタグ間ですべてのコンテンツをコピーします。\fB<head>\fRセクションを含めて、\fB<title>\fRタグ、ソース・ファイルのコピーライト文、その他の情報を配置することはできますが、これらは生成されるドキュメントには表示されません。 HTMLタグ間ですべてのコンテンツをコピーします。\fB<title>\fRタグ、ソース・ファイルの著作権文または他の情報を配置する\fB<head>\fRセクションを含めることができますが、これらは生成されたドキュメントに表示されません。
.RE .RE
.sp .sp
.RS 4 .RS 4
...@@ -1425,9 +1426,9 @@ JDK 1\&.0 ...@@ -1425,9 +1426,9 @@ JDK 1\&.0
.RS 4 .RS 4
JDK 1\&.5で導入 JDK 1\&.5で導入
.sp .sp
\fB<code>{@literal}</code>\fRと同です。 \fB<code>{@literal}</code>\fRと同です。
.sp .sp
テキストをHTMLマークアップまたはネストされたJavadocタグとして解釈せずに、textをコード・フォントで表示します。これにより、ドキュメンテーション・コメントでは、パラメータの型(\fB<Object>\fR)、不等号(\fB3 < 4\fR)、矢印(\fB<\-\fR)などで、通常の山カッコ(<および>)をHTMLエンティティ(\fB&lt;\fRおよび\fB&gt;\fR)のかわりに使用できます。たとえば、生成されたHTMLページに表示されるドキュメンテーション・コメント・テキスト\fB{@code A<B>C}\fRは、変更されず\fBA<B>C\fRとなります。つまり、\fB<B>\fRが太字として解釈されず、そのフォントはコード・フォントになります。コード・フォントなしで同じ機能を実現するには、\fB{@literal}\fRタグを使用します。 テキストをHTMLマークアップまたはネストされたJavadocタグとして解釈せずに、textをコード・フォントで表示します。これにより、ドキュメンテーション・コメントでは、パラメータの型(\fB<Object>\fR)、不等号(\fB3 < 4\fR)、矢印(\fB<\-\fR)などで、通常の山カッコ(<および>)をHTMLエンティティ(\fB&lt;\fRおよび\fB&gt;\fR)のかわりに使用できます。たとえば、ドキュメンテーション・コメント・テキスト\fB{@code A<B>C}\fRは、\fBA<B>C\fRとして変更されずに生成されたHTMLページに表示されます。つまり、\fB<B>\fRが太字として解釈されず、そのフォントはコード・フォントになります。コード・フォントなしで同じ機能を実現するには、\fB{@literal}\fRタグを使用します。
.RE .RE
.PP .PP
@deprecated \fIdeprecated\-text\fR @deprecated \fIdeprecated\-text\fR
...@@ -1594,7 +1595,7 @@ JDK 1\&.4 ...@@ -1594,7 +1595,7 @@ JDK 1\&.4
.RS 4 .RS 4
JDK 1\&.5で導入 JDK 1\&.5で導入
.sp .sp
テキストをHTMLマークアップまたはネストされたJavadocタグとして解釈せずに、textを表示します。これにより、ドキュメンテーション・コメントでは、パラメータの型(\fB<Object>\fR)、不等号(\fB3 < 4\fR)、矢印(<\-)などで、山カッコ(\fB<および>\fR)をHTMLエンティティ(\fB&lt;\fRおよび\fB&gt;\fR)のかわりに使用できます。たとえば、ドキュメンテーション・コメント・テキスト\fB{@literal A<B>C}\fRは、変更されずにブラウザに生成されたHTMLページに\fBA<B>C\fRと表示されます。\fB<B>\fRは太字として解釈されません(コード・フォントになりません)。コード・フォントで同じ機能を実現するには、\fB{@code}\fRタグを使用します。 テキストをHTMLマークアップまたはネストされたJavadocタグとして解釈せずに、textを表示します。これにより、ドキュメンテーション・コメントでは、パラメータの型(\fB<Object>\fR)、不等号(\fB3 < 4\fR)、矢印(<\-)などで、山カッコ(\fB<および>\fR)をHTMLエンティティ(\fB&lt;\fRおよび\fB&gt;\fR)のかわりに使用できます。たとえば、ドキュメンテーション・コメント・テキスト\fB{@literal A<B>C}\fRは、\fBA<B>C\fRとしてブラウザの生成されたHTMLページで変更されずに表示されます。\fB<B>\fRは太字として解釈されません(コード・フォントになりません)。コード・フォントで同じ機能を実現するには、\fB{@code}\fRタグを使用します。
.RE .RE
.PP .PP
@param \fIparameter\-name description\fR @param \fIparameter\-name description\fR
...@@ -1664,7 +1665,7 @@ JDK 1\&.0 ...@@ -1664,7 +1665,7 @@ JDK 1\&.0
.sp .sp
"The Java Programming Language" "The Java Programming Language"
.sp .sp
\fB形式2\fR。\fB@see <a href="URL#value">label</a>\fR形式は、\fBURL#value\fRで定義されたリンクを追加します。\fBURL#value\fRパラメータは、相対URLまたは絶対URLです。\fBjavadoc\fRコマンドは、最初の文字として「より小さい」記号(\fB<\fR)を検索して、この形式を他の形式と区別します。たとえば、\fB@see <a href="spec\&.html#section">Java Spec</a>\fRは次のリンクを生成します。 \fB形式2\fR。\fB@see <a href="URL#value">label</a>\fRフォームは、\fBURL#value\fRで定義されているようにリンクを追加します。\fBURL#value\fRパラメータは、相対URLまたは絶対URLです。\fBjavadoc\fRコマンドは、最初の文字として「より小さい」記号(\fB<\fR)を検索して、この形式を他の形式と区別します。たとえば、\fB@see <a href="spec\&.html#section">Java Spec</a>\fRは、次のリンクを生成します:
.sp .sp
\fB関連項目\fR: \fB関連項目\fR:
.sp .sp
...@@ -1673,7 +1674,7 @@ Java Spec ...@@ -1673,7 +1674,7 @@ Java Spec
\fB形式3\fR。\fB@see package\&.class#member label\fR形式は、表示テキスト・ラベルとともにリンクを追加します。このラベルは参照されているJava言語の指定された名前のドキュメントを指し示します。ラベルはオプションです。ラベルを省略した場合は、表示テキストのかわりに、名前が適切に短縮されて表示されます。\fB\-noqualifier\fRオプションを使用すると、この表示テキストからパッケージ名が全体的に削除されます。ラベルは、自動生成される表示テキストとは異なる表示テキストにする場合に使用します。「名前が表示される方法」を参照してください。 \fB形式3\fR。\fB@see package\&.class#member label\fR形式は、表示テキスト・ラベルとともにリンクを追加します。このラベルは参照されているJava言語の指定された名前のドキュメントを指し示します。ラベルはオプションです。ラベルを省略した場合は、表示テキストのかわりに、名前が適切に短縮されて表示されます。\fB\-noqualifier\fRオプションを使用すると、この表示テキストからパッケージ名が全体的に削除されます。ラベルは、自動生成される表示テキストとは異なる表示テキストにする場合に使用します。「名前が表示される方法」を参照してください。
.sp .sp
Java SE 1\&.2だけは、ラベルではなく名前が\fB<code>\fR Java SE 1\&.2だけは、ラベルではなく名前が\fB<code>\fR
HTMLタグ内に自動的に表示されます。Java SE 1\&.2\&.2からは、ラベルを使用するかしないかにかかわらず、\fB<code>\fRタグは常に表示テキストを囲むかたちで含まれます。 HTMLタグ内に自動的に表示されます。Java SE 1\&.2\&.2からは、ラベルを使用するかしないかにかかわらず、\fB<code>\fRタグは常に表示テキストを囲むで含まれます。
.sp .sp
.RS 4 .RS 4
.ie n \{\ .ie n \{\
...@@ -2290,15 +2291,677 @@ Javadoc ...@@ -2290,15 +2291,677 @@ Javadoc
.RE .RE
.PP .PP
オプションは次のとおりです。 オプションは次のとおりです。
.PP .sp
\-1\&.1 || \-author || \-bootclasspath classpathlist || \-bottom text || \-breakiterator || \-charset name || \-classpath classpathlist || \-d directory || \-docencoding name || \-docfilesubdirs || \-doclet class || \-docletpath classpathlist || \-doctitle title || \-encoding || \-exclude packagename1:packagename2:\&.\&.\&. || \-excludedocfilessubdir name1:name2 || \-extdirs dirist || \-footer footer || \-group groupheading packagepattern:packagepattern || \-header header || \-help || \-helpfile path\efilename || \-Jflag || \-keywords || \-link extdocURL || \-linkoffline extdocURL packagelistLoc || \-linksource || \-locale language_country_variant || \-nocomment || \-nodeprecated || \-nodeprecatedlist || \-nohelp || \-noindex || \-nonavbar || \-noqualifier all | packagename1:packagename2\&.\&.\&. || \-nosince || \-notimestamp || \-notree || .RS 4
.ie n \{\
\-overview path/filename || \h'-04'\(bu\h'+03'\c
\-package || \-private || \-protected || \-public || \-quiet || \-serialwarn || \-source release || \-sourcepath sourcepathlist || \-sourcetab tablength || \-splitindex || .\}
.el \{\
\-stylesheet path/filename || .sp -1
.IP \(bu 2.3
||\-subpackages package1:package2:\&.\&.\&. || \-tag tagname:Xaoptcmf:"taghead" || \-taglet class || \-tagletpath tagletpathlist || \-title title || \-top || \-use || \-verbose || \-version || \-windowtitle title .\}
\-1\&.1
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-author
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-bootclasspath classpathlist
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-bottom text
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-breakiterator
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-charset name
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-classpath classpathlist
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-d directory
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-docencoding name
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-docfilesubdirs
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-doclet class
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-docletpath classpathlist
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-doctitle title
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-encoding
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-exclude packagename1:packagename2:\&.\&.\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-excludedocfilessubdir name1:name2
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-extdirs dirist
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-footer footer
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-group groupheading packagepattern:packagepattern
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-header header
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-help
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-helpfile path\efilename
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-Jflag
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-javafx
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-keywords
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-link extdocURL
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-linkoffline extdocURL packagelistLoc
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-linksource
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-locale language_country_variant
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-nocomment
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-nodeprecated
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-nodeprecatedlist
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-nohelp
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-noindex
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-nonavbar
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-noqualifier all | packagename1:packagename2\&.\&.\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-nosince
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-notimestamp
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-notree
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-overview path/filename
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-package
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-private
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-protected
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-public
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-quiet
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-serialwarn
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-source release
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-sourcepath sourcepathlist
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-sourcetab tablength
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-splitindex
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-stylesheet path/filename
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-tag tagname:Xaoptcmf:"taghead"
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-subpackages package1:package2:\&.\&.\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-taglet class
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-tagletpath tagletpathlist
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-title title
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-top
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-use
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-verbose
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-version
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-windowtitle title
.RE
.PP .PP
次のオプションは、すべてのドックレットに使用可能なコアのJavadocオプションです。標準ドックレットでは、ドックレットの他の部分を提供します。\fB\-bootclasspath\fR、\fB\-breakiterator\fR、\fB\-classpath\fR、\fB\-doclet\fR、\fB\-docletpath\fR、\fB\-encoding\fR、\-\fBexclude\fR、\fB\-extdirs\fR、\fB\-help\fR、\fB\-locale\fR、\fB\-\fR\fBoverview\fR、\fB\-package\fR、\fB\-private\fR、\fB\-protected\fR、\fB\-public\fR、\fB\-quiet\fR、\fB\-source\fR、\fB\-sourcepath\fR、\fB\-subpackages\fRおよび\fB\-verbose\fR。 次のオプションは、すべてのドックレットに使用可能なコアのJavadocオプションです。標準ドックレットでは、ドックレットの他の部分を提供します。\fB\-bootclasspath\fR、\fB\-breakiterator\fR、\fB\-classpath\fR、\fB\-doclet\fR、\fB\-docletpath\fR、\fB\-encoding\fR、\-\fBexclude\fR、\fB\-extdirs\fR、\fB\-help\fR、\fB\-locale\fR、\fB\-\fR\fBoverview\fR、\fB\-package\fR、\fB\-private\fR、\fB\-protected\fR、\fB\-public\fR、\fB\-quiet\fR、\fB\-source\fR、\fB\-sourcepath\fR、\fB\-subpackages\fRおよび\fB\-verbose\fR。
.SS "Javadocオプション" .SS "Javadocオプション"
...@@ -2306,7 +2969,7 @@ Javadoc ...@@ -2306,7 +2969,7 @@ Javadoc
\-overview \fIpath/filename \fR \-overview \fIpath/filename \fR
.RS 4 .RS 4
\fBjavadoc\fRコマンドに対して、\fIpath/filename \fRで指定されたソース・ファイルから概要ドキュメント用のテキストを取得し、そのテキストを概要ページ(overview\-summary\&.html)に配置するように指定します。\fIpath/filename\fRは、現在のディレクトリからの相対パスです。 \fBjavadoc\fRコマンドに対して、\fIpath/filename \fRで指定されたソース・ファイルから概要ドキュメント用のテキストを取得し、そのテキストを「概要」ページ(overview\-summary\&.html)に配置するように指定します。\fIpath/filename\fRは、現在のディレクトリからの相対パスです。
.sp .sp
\fBfilename\fRの値で任意の名前を使用し、pathで任意の配置先を指定できますが、通常はoverview\&.htmlという名前を付け、ソース・ツリー内の最上位パッケージ・ディレクトリを含むディレクトリに配置します。この場所に配置すると、パッケージをドキュメント化するときにpathを指定する必要がなくなります。これは、\fB\-sourcepath\fRオプションによってこのファイルが指し示されるからです。 \fBfilename\fRの値で任意の名前を使用し、pathで任意の配置先を指定できますが、通常はoverview\&.htmlという名前を付け、ソース・ツリー内の最上位パッケージ・ディレクトリを含むディレクトリに配置します。この場所に配置すると、パッケージをドキュメント化するときにpathを指定する必要がなくなります。これは、\fB\-sourcepath\fRオプションによってこのファイルが指し示されるからです。
.sp .sp
...@@ -2316,7 +2979,7 @@ Javadoc ...@@ -2316,7 +2979,7 @@ Javadoc
.sp .sp
\fIpath/filename\fRで指定するファイルについては、概要コメント・ファイルを参照してください。 \fIpath/filename\fRで指定するファイルについては、概要コメント・ファイルを参照してください。
.sp .sp
概要ページが作成されるのは、\fBjavadoc\fRコマンドに複数のパッケージ名を渡した場合のみです。詳細は、HTMLフレームを参照してください。概要ページのタイトルは、\fB\-doctitle\fRによって設定されます。 「概要」ページが作成されるのは、\fBjavadoc\fRコマンドに複数のパッケージ名を渡した場合のみです。詳細は、HTMLフレームを参照してください。「概要」ページのタイトルは、\fB\-doctitle\fRによって設定されます。
.RE .RE
.PP .PP
\-Xdoclint:(all|none|[\-]\fI<group>\fR) \-Xdoclint:(all|none|[\-]\fI<group>\fR)
...@@ -2537,8 +3200,9 @@ Javadoc 1\&.4 ...@@ -2537,8 +3200,9 @@ Javadoc 1\&.4
\-sourcepath \fIsourcepathlist\fR \-sourcepath \fIsourcepathlist\fR
.RS 4 .RS 4
パッケージ名または\fB\-subpackages\fRオプションを\fBjavadoc\fRコマンドに渡すときに、ソース・ファイルを見つけるための検索パスを指定します。 パッケージ名または\fB\-subpackages\fRオプションを\fBjavadoc\fRコマンドに渡すときに、ソース・ファイルを見つけるための検索パスを指定します。
.sp
複数のパスはコロン(:)で区切ります。 複数のパスはコロン(:)で区切ります。
.sp
\fBjavadoc\fRコマンドは、指定されたパス以下のすべてのサブディレクトリを検索します。このオプションを使用して、ドキュメント化されるソース・ファイルの位置のみでなく、それ自体はドキュメント化されないがドキュメント化されるソース・ファイルから継承されたコメントを持つソース・ファイルの位置も確認できます。 \fBjavadoc\fRコマンドは、指定されたパス以下のすべてのサブディレクトリを検索します。このオプションを使用して、ドキュメント化されるソース・ファイルの位置のみでなく、それ自体はドキュメント化されないがドキュメント化されるソース・ファイルから継承されたコメントを持つソース・ファイルの位置も確認できます。
.sp .sp
\fB\-sourcepath\fRオプションを使用できるのは、\fBjavadoc\fRコマンドにパッケージ名を渡す場合のみです。\fBjavadoc\fRコマンドに渡されるソース・ファイルは検索されません。ソース・ファイルを特定するには、そのディレクトリに移動するか、「1つ以上のクラスのドキュメント化」に示すように各ファイルの前にパスを含めます。\fB\-sourcepath\fRが省略された場合、\fBjavadoc\fRコマンドは、クラス・パスを使用してソース・ファイルを検索します(\fB\-classpath\fRを参照)。デフォルトの\fB\-sourcepath\fRは、クラス・パスの値です。\fB\-classpath\fRを省略してパッケージ名を\fBjavadoc\fRコマンドに渡すと、\fBjavadoc\fRコマンドは現在のディレクトリ(およびそのサブディレクトリ)からソース・ファイルを検索します。 \fB\-sourcepath\fRオプションを使用できるのは、\fBjavadoc\fRコマンドにパッケージ名を渡す場合のみです。\fBjavadoc\fRコマンドに渡されるソース・ファイルは検索されません。ソース・ファイルを特定するには、そのディレクトリに移動するか、「1つ以上のクラスのドキュメント化」に示すように各ファイルの前にパスを含めます。\fB\-sourcepath\fRが省略された場合、\fBjavadoc\fRコマンドは、クラス・パスを使用してソース・ファイルを検索します(\fB\-classpath\fRを参照)。デフォルトの\fB\-sourcepath\fRは、クラス・パスの値です。\fB\-classpath\fRを省略してパッケージ名を\fBjavadoc\fRコマンドに渡すと、\fBjavadoc\fRコマンドは現在のディレクトリ(およびそのサブディレクトリ)からソース・ファイルを検索します。
...@@ -2578,8 +3242,9 @@ Javadoc 1\&.4 ...@@ -2578,8 +3242,9 @@ Javadoc 1\&.4
\-classpath \fIclasspathlist\fR \-classpath \fIclasspathlist\fR
.RS 4 .RS 4
\fBjavadoc\fRコマンドが参照クラスの検索を行うときに使用するパスを指定します。参照クラスとは、ドキュメント化されるクラスと、それらのクラスによって参照されるすべてのクラスのことです。 \fBjavadoc\fRコマンドが参照クラスの検索を行うときに使用するパスを指定します。参照クラスとは、ドキュメント化されるクラスと、それらのクラスによって参照されるすべてのクラスのことです。
.sp
複数のパスはコロン(:)で区切ります。 複数のパスはコロン(:)で区切ります。
.sp
\fBjavadoc\fRコマンドは、指定されたパス以下のすべてのサブディレクトリを検索します。\fBclasspathlist\fRの値を指定するときは、クラス・パスのドキュメントにある指示に従ってください。 \fBjavadoc\fRコマンドは、指定されたパス以下のすべてのサブディレクトリを検索します。\fBclasspathlist\fRの値を指定するときは、クラス・パスのドキュメントにある指示に従ってください。
.sp .sp
\fB\-sourcepath\fRが省略された場合、\fBjavadoc\fRコマンドは\fB\-classpath\fRを使用して、ソース・ファイルおよびクラス・ファイルを検索します(後方互換性のため)。ソース・ファイルとクラス・ファイルを別々のパスから検索する必要がある場合は、\fB\-sourcepath\fRと\fB\-classpath\fRの両方を使用します。 \fB\-sourcepath\fRが省略された場合、\fBjavadoc\fRコマンドは\fB\-classpath\fRを使用して、ソース・ファイルおよびクラス・ファイルを検索します(後方互換性のため)。ソース・ファイルとクラス・ファイルを別々のパスから検索する必要がある場合は、\fB\-sourcepath\fRと\fB\-classpath\fRの両方を使用します。
...@@ -2689,7 +3354,7 @@ Javadoc 1\&.4 ...@@ -2689,7 +3354,7 @@ Javadoc 1\&.4
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
breakiterator文区切りアルゴリズム。次の語が大文字で始まる場合、空白文字が続くピリオド、疑問符、または感嘆符で停止します。このアルゴリズムでは「The serial no\&. is valid」など、ほとんどの省略表記が処理されますが、「Mr\&. Smith」は処理されません。\fB\-breakiterator\fRオプションでは、HTMLタグや、数字または記号で始まる文では停止しません。HTMLタグに埋め込まれている場合でも、「\&.\&./filename」の最後のピリオドで停止します。 breakiterator文区切りアルゴリズム。次の語が大文字で始まる場合、空白文字が続くピリオド、疑問符、または感嘆符で停止します。このアルゴリズムでは「The serial no\&. is valid」など、ほとんどの省略表記が処理されますが、「Mr\&. Smith」は処理されません。\fB\-breakiterator\fRオプションでは、HTMLタグや、数字または記号で始まる文では停止しません。HTMLタグに埋め込まれている場合でも、アルゴリズムは「\&.\&./filename」の最後のピリオドで停止します。
.RE .RE
.sp .sp
Java SE 1\&.5では\fB\-breakiterator\fR警告メッセージが削除され、デフォルトの文区切りアルゴリズムは変更されていません。ソース・コードを変更せず、SE 1\&.4\&.xでの\fB\-breakiterator\fRオプションの警告を除去していない場合でも、何もする必要はありません。Java SE 1\&.5\&.0からは警告は消滅しています。 Java SE 1\&.5では\fB\-breakiterator\fR警告メッセージが削除され、デフォルトの文区切りアルゴリズムは変更されていません。ソース・コードを変更せず、SE 1\&.4\&.xでの\fB\-breakiterator\fRオプションの警告を除去していない場合でも、何もする必要はありません。Java SE 1\&.5\&.0からは警告は消滅しています。
...@@ -2729,6 +3394,25 @@ Java SE 1\&.5 ...@@ -2729,6 +3394,25 @@ Java SE 1\&.5
\fBJava(TM) SE Runtime Environment (build 1\&.7\&.0_09\-b05)\fR \fBJava(TM) SE Runtime Environment (build 1\&.7\&.0_09\-b05)\fR
\fBJava HotSpot(TM) 64\-Bit Server VM (build 23\&.5\-b02, mixed mode)\fR \fBJava HotSpot(TM) 64\-Bit Server VM (build 23\&.5\-b02, mixed mode)\fR
.fi
.if n \{\
.RE
.\}
.RE
.PP
\-javafx
.RS 4
標準ドックレットに対してJavaFX拡張機能を使用して、HTMLドキュメントを生成します。生成されたドキュメントには、標準Javaドックレットで生成された他のサマリー・セクションに加えて「プロパティのサマリー」セクションが含まれています。リストされたプロパティは、各プロパティのgetterおよびsetterメソッドのセクションにリンクされます。
.sp
getterおよびsetterメソッドに対して明示的に記載されているドキュメント・コメントがない場合、プロパティ・メソッドのドキュメント・コメントがこれらのメソッドに対して生成されたドキュメントに自動的にコピーされます。このオプションは、プロパティのデフォルト値を記述できる新しい\fB@defaultValue\fRタグも追加します。
.sp
例:
.sp
.if n \{\
.RS 4
.\}
.nf
\fBjavadoc \-javafx MyClass\&.java \-d testdir\fR
.fi .fi
.if n \{\ .if n \{\
.RE .RE
...@@ -2740,12 +3424,12 @@ Java SE 1\&.5 ...@@ -2740,12 +3424,12 @@ Java SE 1\&.5
.RS 4 .RS 4
\fBjavadoc\fRコマンドが生成されたHTMLファイルを保存する生成先ディレクトリを指定します。\fB\-d\fRオプションを省略すると、ファイルは現在のディレクトリに保存されます。\fBdirectory\fRの値には、絶対ディレクトリ、または現在の作業ディレクトリからの相対ディレクトリを指定できます。Java SE 1\&.4では、\fBjavadoc\fRコマンドを実行すると生成先ディレクトリが自動的に作成されます。 \fBjavadoc\fRコマンドが生成されたHTMLファイルを保存する生成先ディレクトリを指定します。\fB\-d\fRオプションを省略すると、ファイルは現在のディレクトリに保存されます。\fBdirectory\fRの値には、絶対ディレクトリ、または現在の作業ディレクトリからの相対ディレクトリを指定できます。Java SE 1\&.4では、\fBjavadoc\fRコマンドを実行すると生成先ディレクトリが自動的に作成されます。
.sp .sp
たとえば、次の例では、\fBcom\&.mypackage\fRパッケージのドキュメントが生成され、その結果が/user/doc/ ディレクトリに保存されます。\fBjavadoc \-d \fR\fB/user/doc/ \fR\fBcom\&.mypackage\fR たとえば、次の例では、\fBcom\&.mypackage\fRパッケージのドキュメントが生成され、その結果が/user/doc/ディレクトリに保存されます。\fBjavadoc \-d \fR\fB/user/doc/ \fR\fBcom\&.mypackage\fR
.RE .RE
.PP .PP
\-use \-use
.RS 4 .RS 4
ドキュメント化されるクラスおよびパッケージごとに1つの使用ページを組み込みます。このページには、その特定のクラスまたはパッケージのAPIを使用しているパッケージ、クラス、メソッド、コンストラクタ、およびフィールドが記述されます。たとえば、クラスCを例にとると、クラスCを使用しているものとしては、Cのサブクラス、Cとして宣言されているフィールド、Cを返すメソッド、および型Cのパラメータを持つメソッドとコンストラクタがあります。たとえば、\fBString\fR型用の使用ページを表示できます。\fBjava\&.awt\&.Font\fRクラスの\fBgetName\fRメソッドは\fBString\fR型を戻すので、\fBgetName\fRメソッドは\fBString\fRを使用し、\fBgetName\fRメソッドが\fBString\fR用の使用ページに表示されます。これは実装ではなくAPIの使用のみをドキュメント化します。メソッドがその実装で\fBString\fRを使用するが、引数として文字列を取らない、または文字列を返さない場合、それは\fBString\fRの使用とはみなされません。生成された使用ページにアクセスするには、クラスまたはパッケージに移動し、ナビゲーション・バーの\fBリンクの使用\fRをクリックします。 ドキュメント化されるクラスおよびパッケージごとに1つの「使用」ページを組み込みます。このページには、その特定のクラスまたはパッケージのAPIを使用しているパッケージ、クラス、メソッド、コンストラクタ、およびフィールドが記述されます。たとえば、クラスCを例にとると、クラスCを使用しているものとしては、Cのサブクラス、Cとして宣言されているフィールド、Cを返すメソッド、および型Cのパラメータを持つメソッドとコンストラクタがあります。たとえば、\fBString\fR型用の「使用」ページを表示できます。\fBjava\&.awt\&.Font\fRクラスの\fBgetName\fRメソッドは\fBString\fR型を戻すので、\fBgetName\fRメソッドは\fBString\fRを使用し、\fBgetName\fRメソッドが\fBString\fR用の「使用」ページに表示されます。これは実装ではなくAPIの使用のみをドキュメント化します。メソッドがその実装で\fBString\fRを使用するが、引数として文字列を取らない、または文字列を返さない場合、それは\fBString\fRの使用とはみなされません。生成された「使用」ページにアクセスするには、クラスまたはパッケージに移動し、ナビゲーション・バーの\fBリンクの使用\fRをクリックします。
.RE .RE
.PP .PP
\-version \-version
...@@ -2847,9 +3531,7 @@ HTML ...@@ -2847,9 +3531,7 @@ HTML
.PP .PP
外部APIドキュメントへの絶対URLを使用する場合(そのURLに接続し、読取りを行うことがシェルによって許可されていない場合)は\fB\-linkoffline\fRオプションを使用します。このような状況は、ファイアウォールの内側からファイアウォールの外側にあるドキュメントにリンクしようとする場合に発生します。 外部APIドキュメントへの絶対URLを使用する場合(そのURLに接続し、読取りを行うことがシェルによって許可されていない場合)は\fB\-linkoffline\fRオプションを使用します。このような状況は、ファイアウォールの内側からファイアウォールの外側にあるドキュメントにリンクしようとする場合に発生します。
.PP .PP
\fB例 1\fR \fB例 1 \fR外部ドキュメントへの絶対リンク
.br
外部ドキュメントへの絶対リンク
.RS 4 .RS 4
http://docs\&.oracle\&.com/javase/8/docs/api/index\&.htmlに示すような、\fBjava\&.lang\fR、\fBjava\&.io\fRおよびその他のJavaプラットフォーム・パッケージにリンクする場合、次のコマンドを使用します http://docs\&.oracle\&.com/javase/8/docs/api/index\&.htmlに示すような、\fBjava\&.lang\fR、\fBjava\&.io\fRおよびその他のJavaプラットフォーム・パッケージにリンクする場合、次のコマンドを使用します
.sp .sp
...@@ -2866,9 +3548,7 @@ http://docs\&.oracle\&.com/javase/8/docs/api/index\&.html ...@@ -2866,9 +3548,7 @@ http://docs\&.oracle\&.com/javase/8/docs/api/index\&.html
このコマンドは、Java SEプラットフォーム・パッケージへのリンク持つ\fBcom\&.mypackage\fRパッケージのドキュメントを生成します。生成ドキュメントには、たとえばクラス\fBtrees\fR内の\fBObject\fRクラスへのリンクが含まれています。\fB\-sourcepath\fRや\fB\-d\fRなどの他のオプションは表示されません。 このコマンドは、Java SEプラットフォーム・パッケージへのリンク持つ\fBcom\&.mypackage\fRパッケージのドキュメントを生成します。生成ドキュメントには、たとえばクラス\fBtrees\fR内の\fBObject\fRクラスへのリンクが含まれています。\fB\-sourcepath\fRや\fB\-d\fRなどの他のオプションは表示されません。
.RE .RE
.PP .PP
\fB例 2\fR \fB例 2 \fR外部ドキュメントへの相対リンク
.br
外部ドキュメントへの相対リンク
.RS 4 .RS 4
この例では、2つのパッケージがあり、そのドキュメントは\fBjavadoc\fRコマンドを複数回実行した結果生成されたものです。さらに、これらのドキュメントは相対パスで分割されています。パッケージは、APIである\fBcom\&.apipackage\fRと、SPI(サービス・プロバイダ・インタフェース)であるc\fBom\&.spipackage\fRです。ドキュメントの格納先は、docs/api/com/apipackageとdocs/spi/com/spipackageです。APIパッケージのドキュメントはすでに生成されていて、docsが現在のディレクトリである場合、APIドキュメントへのリンクを持つSPIパッケージをドキュメント化するには、次のコマンドを実行します。\fBjavadoc \-d \&./spi \-link \&.\&./api com\&.spipackage\fR この例では、2つのパッケージがあり、そのドキュメントは\fBjavadoc\fRコマンドを複数回実行した結果生成されたものです。さらに、これらのドキュメントは相対パスで分割されています。パッケージは、APIである\fBcom\&.apipackage\fRと、SPI(サービス・プロバイダ・インタフェース)であるc\fBom\&.spipackage\fRです。ドキュメントの格納先は、docs/api/com/apipackageとdocs/spi/com/spipackageです。APIパッケージのドキュメントはすでに生成されていて、docsが現在のディレクトリである場合、APIドキュメントへのリンクを持つSPIパッケージをドキュメント化するには、次のコマンドを実行します。\fBjavadoc \-d \&./spi \-link \&.\&./api com\&.spipackage\fR
.sp .sp
...@@ -3034,7 +3714,7 @@ package\-list ...@@ -3034,7 +3714,7 @@ package\-list
.PP .PP
ドキュメントの更新 ドキュメントの更新
.PP .PP
プロジェクトに何十または何百のパッケージが含まれる場合にも、\fB\-linkoffline\fRオプションを使用できます。ソース・ツリー全体ですでに\fBjavadoc\fRコマンドを実行したことがある場合、ドキュメンテーション・コメントにわずかな変更を迅速に加え、ソース・ツリーの一部で\fBjavadoc\fRコマンドを再実行することができます。2回目の実行は、ドキュメンテーション・コメントを変更し、宣言は変更しない場合にのみ正しく処理されることに注意してください。ソース・コードに対して宣言を追加、削除、または変更した場合は、索引、パッケージ・ツリー、継承されるメンバーのリスト、使用ページなどの場所で、リンクが壊れることがあります。 プロジェクトに何十または何百のパッケージが含まれる場合にも、\fB\-linkoffline\fRオプションを使用できます。ソース・ツリー全体ですでに\fBjavadoc\fRコマンドを実行したことがある場合、ドキュメンテーション・コメントにわずかな変更を迅速に加え、ソース・ツリーの一部で\fBjavadoc\fRコマンドを再実行することができます。2回目の実行は、ドキュメンテーション・コメントを変更し、宣言は変更しない場合にのみ正しく処理されることに注意してください。ソース・コードに対して宣言を追加、削除、または変更した場合は、索引、パッケージ・ツリー、継承されるメンバーのリスト、「使用」ページなどの場所で、リンクが壊れることがあります。
.PP .PP
まず、この新しい小規模な実行で使用する、新しい生成先ディレクトリ(updateなど)を作成します。この例では、元の生成先ディレクトリの名前はhtmlです。最も単純な例では、htmlディレクトリの親ディレクトリに移動します。\fB\-linkoffline\fRオプションの第1引数にカレント・ディレクトリ(\&.)を設定し、第2引数にpackage\-listが検索されるhtmlへの相対パスを設定し、更新するパッケージのパッケージ名のみを渡します。 まず、この新しい小規模な実行で使用する、新しい生成先ディレクトリ(updateなど)を作成します。この例では、元の生成先ディレクトリの名前はhtmlです。最も単純な例では、htmlディレクトリの親ディレクトリに移動します。\fB\-linkoffline\fRオプションの第1引数にカレント・ディレクトリ(\&.)を設定し、第2引数にpackage\-listが検索されるhtmlへの相対パスを設定し、更新するパッケージのパッケージ名のみを渡します。
.sp .sp
...@@ -3053,7 +3733,7 @@ package\-list ...@@ -3053,7 +3733,7 @@ package\-list
.PP .PP
\-linksource \-linksource
.RS 4 .RS 4
各ソース・ファイル(行番号付き)のHTMLバージョンを作成し、標準HTMLドキュメントからソース・ファイルへのリンクを追加します。リンクは、ソース・ファイル内に宣言されているクラス、インタフェース、コンストラクタ、メソッド、フィールドに対して作成されます。そうでない場合、たとえばデフォルト・コンストラクタや生成されたクラスに対しては、リンクは作成されません。 各ソース・ファイル(行番号付き)のHTMLバージョンを作成し、標準HTMLドキュメントからソース・ファイルへのリンクを追加します。リンクは、ソース・ファイル内に宣言されているクラス、インタフェース、コンストラクタ、メソッド、フィールドに対して作成されます。デフォルト・コンストラクタ、生成されたクラスなどに対しては作成されません。
.sp .sp
このオプションは、\fB\-public\fR、\fB\-package\fR、\fB\-protected\fRおよび\fB\-private\fRの各オプションとは関係なく、非公開のクラス、フィールド、非公開のメソッドの本体をはじめとする組み込まれたソース・ファイル内のすべての非公開実装の詳細を公開します。\fB\-private\fRオプションもあわせて指定しないかぎり、非公開のクラスやインタフェースの一部には、リンクを介してアクセスできないことがあります。 このオプションは、\fB\-public\fR、\fB\-package\fR、\fB\-protected\fRおよび\fB\-private\fRの各オプションとは関係なく、非公開のクラス、フィールド、非公開のメソッドの本体をはじめとする組み込まれたソース・ファイル内のすべての非公開実装の詳細を公開します。\fB\-private\fRオプションもあわせて指定しないかぎり、非公開のクラスやインタフェースの一部には、リンクを介してアクセスできないことがあります。
.sp .sp
...@@ -3342,7 +4022,7 @@ HTML ...@@ -3342,7 +4022,7 @@ HTML
.sp .sp
標準タグは、最初、デフォルトの順序でリスト内に内部的に格納されます。\fB\-tag\fRオプションを使用すると、それらのタグはこのリストに追加されます。標準タグは、デフォルトの位置から移動されます。そのため、標準タグの\fB\-tag\fRオプションを省略すると、それはデフォルトの位置に配置されたままになります。 標準タグは、最初、デフォルトの順序でリスト内に内部的に格納されます。\fB\-tag\fRオプションを使用すると、それらのタグはこのリストに追加されます。標準タグは、デフォルトの位置から移動されます。そのため、標準タグの\fB\-tag\fRオプションを省略すると、それはデフォルトの位置に配置されたままになります。
.sp .sp
\fB競合の回避\fR: 固有の名前空間を作成するには、パッケージに使用されている\fBcom\&.mycompany\&.todo\fRという名前のように、ドットで区切られた名前を使用します。Oracleは、今後も名前にドットを含まない標準タグを作成します。ユーザーが作成したタグは、Oracleが定義する同じ名前のタグの動作をオーバーライドします。\fB@todo\fRという名前のタグまたはタグレットをユーザーが作成した場合、その後にOracleが同じ名前の標準タグを作成しても、そのタグまたはタグレットは常にユーザーが定義したのと同じ動作を保持します。 \fB競合の回避\fR: 固有の名前空間を作成する場合、パッケージに使用されている\fBcom\&.mycompany\&.todo\fRのようなドットで区切りの命名規則を使用できます。Oracleは、今後も名前にドットを含まない標準タグを作成します。ユーザーが作成したタグは、Oracleが定義する同じ名前のタグの動作をオーバーライドします。\fB@todo\fRという名前のタグまたはタグレットをユーザーが作成した場合、その後にOracleが同じ名前の標準タグを作成しても、そのタグまたはタグレットは常にユーザーが定義したのと同じ動作を保持します。
.sp .sp
\fB注釈vs\&. Javadocタグ\fR: 一般に、追加する必要のあるマークアップが、ドキュメントに影響を与えたりドキュメントを生成したりするためのものである場合、そのマークアップはJavadocタグにします。それ以外の場合は注釈にします。JavadocツールでのDocコメントの記述方法のカスタム・タグと注釈に関する項 \fB注釈vs\&. Javadocタグ\fR: 一般に、追加する必要のあるマークアップが、ドキュメントに影響を与えたりドキュメントを生成したりするためのものである場合、そのマークアップはJavadocタグにします。それ以外の場合は注釈にします。JavadocツールでのDocコメントの記述方法のカスタム・タグと注釈に関する項
(http://www\&.oracle\&.com/technetwork/java/javase/documentation/index\-137868\&.html#annotations)を参照してください。 (http://www\&.oracle\&.com/technetwork/java/javase/documentation/index\-137868\&.html#annotations)を参照してください。
...@@ -3428,16 +4108,12 @@ doc\-files ...@@ -3428,16 +4108,12 @@ doc\-files
.PP .PP
\fBjavadoc\fRを実行するときに、各引数ファイルのパスとファイル名の先頭に@文字を付けて渡します。\fBjavadoc\fRコマンドは、アットマーク(@)文字で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。 \fBjavadoc\fRを実行するときに、各引数ファイルのパスとファイル名の先頭に@文字を付けて渡します。\fBjavadoc\fRコマンドは、アットマーク(@)文字で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。
.PP .PP
\fB例 1\fR \fB例 1 \fR単一の引数ファイル
.br
単一の引数ファイル
.RS 4 .RS 4
\fBargfile\fRという名前の1つの引数ファイルを使用して、すべての\fBjavadoc\fRコマンド引数を保持できます。\fBjavadoc @argfile\fR次の例に示すように、この引数ファイルには両方のファイルの内容が含まれています。 \fBargfile\fRという名前の1つの引数ファイルを使用して、すべての\fBjavadoc\fRコマンド引数を保持できます。\fBjavadoc @argfile\fR次の例に示すように、この引数ファイルには両方のファイルの内容が含まれています。
.RE .RE
.PP .PP
\fB例 2\fR \fB例 2 \fR2つの引数ファイル
.br
2つの引数ファイル
.RS 4 .RS 4
次のように、2つの引数ファイルを作成できます。\fBjavadoc\fRコマンドのオプション用に1つ、パッケージ名またはソース・ファイル名用に1つです。次のリストでは行継続文字を使用していません。 次のように、2つの引数ファイルを作成できます。\fBjavadoc\fRコマンドのオプション用に1つ、パッケージ名またはソース・ファイル名用に1つです。次のリストでは行継続文字を使用していません。
.sp .sp
...@@ -3490,9 +4166,7 @@ doc\-files ...@@ -3490,9 +4166,7 @@ doc\-files
.\} .\}
.RE .RE
.PP .PP
\fB例 3\fR \fB例 3 \fRパスを使用した引数ファイル
.br
パスを使用した引数ファイル
.RS 4 .RS 4
引数ファイルはパスを指定できますが、ファイル内のすべてのファイル名は、(\fBpath1\fRや\fBpath2\fRではなく)次のように現在の作業ディレクトリに相対的となります。 引数ファイルはパスを指定できますが、ファイル内のすべてのファイル名は、(\fBpath1\fRや\fBpath2\fRではなく)次のように現在の作業ディレクトリに相対的となります。
.sp .sp
...@@ -3508,9 +4182,7 @@ doc\-files ...@@ -3508,9 +4182,7 @@ doc\-files
.\} .\}
.RE .RE
.PP .PP
\fB例 4\fR \fB例 4 \fRオプション引数
.br
オプション引数
.RS 4 .RS 4
次に、\fBjavadoc\fRコマンドのオプションに対する引数を引数ファイルに格納する例を示します。長い引数を指定できるので、\fB\-bottom\fRオプションを使用します。次のようなテキスト引数を含む、bottomという名前のファイルを作成できます。 次に、\fBjavadoc\fRコマンドのオプションに対する引数を引数ファイルに格納する例を示します。長い引数を指定できるので、\fB\-bottom\fRオプションを使用します。次のようなテキスト引数を含む、bottomという名前のファイルを作成できます。
.sp .sp
...@@ -3557,12 +4229,9 @@ Java ...@@ -3557,12 +4229,9 @@ Java
.PP .PP
ディレクトリの変更(\fBcd\fRコマンドを使用)または\fB\-sourcepath\fRオプションにより、\fBjavadoc\fRコマンドを実行できます。次の例で両方の選択肢を示します。 ディレクトリの変更(\fBcd\fRコマンドを使用)または\fB\-sourcepath\fRオプションにより、\fBjavadoc\fRコマンドを実行できます。次の例で両方の選択肢を示します。
.PP .PP
\fB例 1\fR \fB例 1 \fR1つ以上のパッケージから再帰的に実行
.br
1つ以上のパッケージから再帰的に実行
.RS 4 .RS 4
この例では\fBjavadoc\fRコマンドが任意のディレクトリから実行できるように、\fB\-sourcepath\fRを使用し、再帰的処理のために\fB\-subpackages\fR この例では\fBjavadoc\fRコマンドが任意のディレクトリから実行できるように、\fB\-sourcepath\fRを使用し、再帰的処理のために\fB\-subpackages\fR(1\&.4の新オプション)を使用します。これは、javaディレクトリのサブパッケージをたどりますが、\fBjava\&.net\fRと\fBjava\&.lang\fRをルートに持つパッケージは除外されます。\fBjava\&.lang\fRのサブパッケージである\fBjava\&.lang\&.ref\fRが除外される点に注意してください。また、他のパッケージ・ツリーを下方にたどるには、\fBjava:javax:org\&.xml\&.sax\fRのように、それらのパッケージの名前を\fB\-subpackages\fRの引数に追加します。
(1\&.4の新オプション)を使用します。これは、javaディレクトリのサブパッケージをたどりますが、\fBjava\&.net\fRと\fBjava\&.lang\fRをルートに持つパッケージは除外されます。\fBjava\&.lang\fRのサブパッケージである\fBjava\&.lang\&.ref\fRが除外される点に注意してください。また、他のパッケージ・ツリーを下方にたどるには、\fBjava:javax:org\&.xml\&.sax\fRのように、それらのパッケージの名前を\fB\-subpackages\fRの引数に追加します。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
...@@ -3576,9 +4245,7 @@ Java ...@@ -3576,9 +4245,7 @@ Java
.\} .\}
.RE .RE
.PP .PP
\fB例 2\fR \fB例 2 \fRルートへの移動および明示的なパッケージの実行
.br
ルートへの移動および明示的なパッケージの実行
.RS 4 .RS 4
完全修飾されたパッケージの親ディレクトリに移動します。次に、ドキュメント化する1つ以上のパッケージの名前を指定して\fBjavadoc\fRコマンドを実行します。 完全修飾されたパッケージの親ディレクトリに移動します。次に、ドキュメント化する1つ以上のパッケージの名前を指定して\fBjavadoc\fRコマンドを実行します。
.sp .sp
...@@ -3596,9 +4263,7 @@ Java ...@@ -3596,9 +4263,7 @@ Java
また、他のパッケージ・ツリーを下方にたどるには、j\fBava:javax:org\&.xml\&.sax\fRのように、それらのパッケージの名前を\fB\-subpackages\fRの引数に追加します。 また、他のパッケージ・ツリーを下方にたどるには、j\fBava:javax:org\&.xml\&.sax\fRのように、それらのパッケージの名前を\fB\-subpackages\fRの引数に追加します。
.RE .RE
.PP .PP
\fB例 3\fR \fB例 3 \fR1つのツリーの明示的なパッケージの任意のディレクトリから実行
.br
1つのツリーの明示的なパッケージの任意のディレクトリから実行
.RS 4 .RS 4
この場合、現在のディレクトリがどこかは問題ではありません。\fBjavadoc\fRコマンドを実行し、最上位パッケージの親ディレクトリを指定して\fB\-sourcepath\fRオプションを使用します。ドキュメント化する1つ以上のパッケージの名前を指定します。 この場合、現在のディレクトリがどこかは問題ではありません。\fBjavadoc\fRコマンドを実行し、最上位パッケージの親ディレクトリを指定して\fB\-sourcepath\fRオプションを使用します。ドキュメント化する1つ以上のパッケージの名前を指定します。
.sp .sp
...@@ -3614,9 +4279,7 @@ Java ...@@ -3614,9 +4279,7 @@ Java
.\} .\}
.RE .RE
.PP .PP
\fB例 4\fR \fB例 4 \fR複数のツリーの明示的なパッケージの任意のディレクトリから実行
.br
複数のツリーの明示的なパッケージの任意のディレクトリから実行
.RS 4 .RS 4
\fBjavadoc\fRコマンドを実行し、各ツリーのルートへのパスのコロン区切りリストを指定して\fB\-sourcepath\fRオプションを使用します。ドキュメント化する1つ以上のパッケージの名前を指定します。指定したパッケージのすべてのソース・ファイルが、1つのルート・ディレクトリの下に存在する必要はありませんが、ソース・パスで指定された場所のどこかで見つかる必要があります。 \fBjavadoc\fRコマンドを実行し、各ツリーのルートへのパスのコロン区切りリストを指定して\fB\-sourcepath\fRオプションを使用します。ドキュメント化する1つ以上のパッケージの名前を指定します。指定したパッケージのすべてのソース・ファイルが、1つのルート・ディレクトリの下に存在する必要はありませんが、ソース・パスで指定された場所のどこかで見つかる必要があります。
.sp .sp
...@@ -3637,9 +4300,7 @@ Java ...@@ -3637,9 +4300,7 @@ Java
.PP .PP
また、1つ以上のソース・ファイルを渡して、\fBjavadoc\fRコマンドを実行することもできます。\fBjavadoc\fRは、次の2つの方法のいずれかで実行できます。1つはディレクトリを変更する方法(\fBcd\fRを使用)、もう1つはソース・ファイルへのパスを完全に指定する方法です。相対パスは、現在のディレクトリを起点とします。ソース・ファイルを渡すときは、\fB\-sourcepath\fRオプションは無視されます。アスタリスク(*)のようなコマンド行ワイルドカードを使用すると、クラスのグループを指定できます。 また、1つ以上のソース・ファイルを渡して、\fBjavadoc\fRコマンドを実行することもできます。\fBjavadoc\fRは、次の2つの方法のいずれかで実行できます。1つはディレクトリを変更する方法(\fBcd\fRを使用)、もう1つはソース・ファイルへのパスを完全に指定する方法です。相対パスは、現在のディレクトリを起点とします。ソース・ファイルを渡すときは、\fB\-sourcepath\fRオプションは無視されます。アスタリスク(*)のようなコマンド行ワイルドカードを使用すると、クラスのグループを指定できます。
.PP .PP
\fB例 1\fR \fB例 1 \fRソース・ディレクトリに変更
.br
ソース・ディレクトリに変更
.RS 4 .RS 4
ソースを保持するディレクトリに変更します。次に、ドキュメント化する1つ以上のソース・ファイルの名前を指定して\fBjavadoc\fRコマンドを実行します。 ソースを保持するディレクトリに変更します。次に、ドキュメント化する1つ以上のソース・ファイルの名前を指定して\fBjavadoc\fRコマンドを実行します。
.sp .sp
...@@ -3658,9 +4319,7 @@ Java ...@@ -3658,9 +4319,7 @@ Java
.\} .\}
.RE .RE
.PP .PP
\fB例 2\fR \fB例 2 \fRパッケージのルート・ディレクトリに変更
.br
パッケージのルート・ディレクトリに変更
.RS 4 .RS 4
これは、同じルートからの別のサブパッケージの個々のソース・ファイルをドキュメント化するのに役立ちます。パッケージのルート・ディレクトリに移り、各ソース・ファイルを、ルートからのパスとともに指定します。 これは、同じルートからの別のサブパッケージの個々のソース・ファイルをドキュメント化するのに役立ちます。パッケージのルート・ディレクトリに移り、各ソース・ファイルを、ルートからのパスとともに指定します。
.sp .sp
...@@ -3677,9 +4336,7 @@ Java ...@@ -3677,9 +4336,7 @@ Java
.\} .\}
.RE .RE
.PP .PP
\fB例 3\fR \fB例 3 \fR任意のディレクトリからのファイルのドキュメント化
.br
任意のディレクトリからのファイルのドキュメント化
.RS 4 .RS 4
この場合、現在のディレクトリがどこかは問題ではありません。ドキュメント化するソース・ファイルへの絶対パス(または現在のディレクトリからの相対パス)を指定して\fBjavadoc\fRコマンドを実行します。 この場合、現在のディレクトリがどこかは問題ではありません。ドキュメント化するソース・ファイルへの絶対パス(または現在のディレクトリからの相対パス)を指定して\fBjavadoc\fRコマンドを実行します。
.sp .sp
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "javah" "1" "2013年11月21日" "JDK 8" "基本ツール" .TH "javah" "1" "2013年11月21日" "JDK 8" "基本ツール"
...@@ -77,7 +78,7 @@ C ...@@ -77,7 +78,7 @@ C
.PP .PP
\fBjavah\fRコマンドは、ネイティブ・メソッドを実装するために必要なCヘッダーとソース・ファイルを生成します。作成されたヘッダーとソース・ファイルは、ネイティブ・ソース・コードからオブジェクトのインスタンス変数を参照するためにCプログラムによって使用されます。\fB\&.h\fRファイルは、対応するクラスと一致する配置を持つ\fBstruct\fR定義を含みます。\fBstruct\fRのフィールドは、クラスのインスタンス変数に対応します。 \fBjavah\fRコマンドは、ネイティブ・メソッドを実装するために必要なCヘッダーとソース・ファイルを生成します。作成されたヘッダーとソース・ファイルは、ネイティブ・ソース・コードからオブジェクトのインスタンス変数を参照するためにCプログラムによって使用されます。\fB\&.h\fRファイルは、対応するクラスと一致する配置を持つ\fBstruct\fR定義を含みます。\fBstruct\fRのフィールドは、クラスのインスタンス変数に対応します。
.PP .PP
ヘッダー・ファイルとその中で宣言される構造体の名前はクラスの名前から派生します。\fBjavah\fRコマンドに渡されるクラスがパッケージの中にある場合、パッケージ名はヘッダー・ファイル名と構造体名の両方の先頭に付加されます。下線(_)が名前の区切り文字として使用されます。 ヘッダー・ファイルとその中で宣言される構造体の名前はクラスの名前から派生します。\fBjavah\fRコマンドに渡されるクラスがパッケージの中にある場合、パッケージ名はヘッダー・ファイル名と構造体名の両方の先頭に付加されます。アンダースコア(_)が名前の区切り文字として使用されます。
.PP .PP
デフォルトでは\fBjavah\fRコマンドは、コマンド行にリストされる各クラスのヘッダー・ファイルを作成し、現在のディレクトリにファイルを置きます。ソース・ファイルを作成するには、\fB\-stubs\fRオプションを使用してください。1つのファイルの中に、リストされたすべてのクラスの結果を連結するには、\fB\-o\fRオプションを使用してください。 デフォルトでは\fBjavah\fRコマンドは、コマンド行にリストされる各クラスのヘッダー・ファイルを作成し、現在のディレクトリにファイルを置きます。ソース・ファイルを作成するには、\fB\-stubs\fRオプションを使用してください。1つのファイルの中に、リストされたすべてのクラスの結果を連結するには、\fB\-o\fRオプションを使用してください。
.PP .PP
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "javap" "1" "2014年8月8日" "JDK 8" "基本ツール" .TH "javap" "1" "2014年8月8日" "JDK 8" "基本ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Java Web Startツール .\" SectDesc: Java Web Startツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "javaws" "1" "2013年11月21日" "JDK 8" "Java Web Startツール" .TH "javaws" "1" "2013年11月21日" "JDK 8" "Java Web Startツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: トラブルシューティング・ツール .\" SectDesc: トラブルシューティング・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jcmd" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" .TH "jcmd" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Javaトラブルシューティング、プロファイリング、モニタリングおよび管理ツール .\" SectDesc: Javaトラブルシューティング、プロファイリング、モニタリングおよび管理ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jconsole" "1" "2013年11月21日" "JDK 8" "Javaトラブルシューティング、プロファイリング、モニタリン" .TH "jconsole" "1" "2013年11月21日" "JDK 8" "Javaトラブルシューティング、プロファイリング、モニタリン"
...@@ -81,7 +82,7 @@ http://docs\&.oracle\&.com/javase/8/docs/api/javax/management/remote/JMXServiceU ...@@ -81,7 +82,7 @@ http://docs\&.oracle\&.com/javase/8/docs/api/javax/management/remote/JMXServiceU
.RE .RE
.SH "説明" .SH "説明"
.PP .PP
\fBjconsole\fRコマンドは、ローカル・マシンまたはリモート・マシン上のJavaアプリケーションと仮想マシンをモニターおよび管理するグラフィカル・コンソール・ツールを起動します。 \fBjconsole\fRコマンドは、ローカル・マシンまたはリモート・マシン上のJavaアプリケーションと仮想マシンのモニターと管理を行うグラフィカル・コンソール・ツールを起動します。
.PP .PP
Windows上では、\fBjconsole\fRコマンドはコンソール・ウィンドウと関連付けられていません。ただし、\fBjconsole\fRコマンドが失敗すると、エラー情報を示すダイアログ・ボックスが表示されます。 Windows上では、\fBjconsole\fRコマンドはコンソール・ウィンドウと関連付けられていません。ただし、\fBjconsole\fRコマンドが失敗すると、エラー情報を示すダイアログ・ボックスが表示されます。
.SH "オプション" .SH "オプション"
...@@ -93,7 +94,7 @@ Windows ...@@ -93,7 +94,7 @@ Windows
.PP .PP
\-notile \-notile
.RS 4 .RS 4
最初ウィンドウをタイル表示しません(複数接続の場合)。 最初ウィンドウをタイル表示しません(複数接続の場合)。
.RE .RE
.PP .PP
\-pluginpath \fIplugins\fR \-pluginpath \fIplugins\fR
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jdb" "1" "2013年11月21日" "JDK 8" "基本ツール" .TH "jdb" "1" "2013年11月21日" "JDK 8" "基本ツール"
...@@ -318,7 +319,7 @@ Java HotSpot VM ...@@ -318,7 +319,7 @@ Java HotSpot VM
.RS 4 .RS 4
JVMに\fBoption\fRを渡します。optionには、Javaアプリケーション起動ツールのリファレンス・ページに記載されているオプションを1つ指定します。たとえば、\fB\-J\-Xms48m\fRと指定すると、スタートアップ・メモリーは48MBに設定されます。java(1)を参照してください。 JVMに\fBoption\fRを渡します。optionには、Javaアプリケーション起動ツールのリファレンス・ページに記載されているオプションを1つ指定します。たとえば、\fB\-J\-Xms48m\fRと指定すると、スタートアップ・メモリーは48MBに設定されます。java(1)を参照してください。
.RE .RE
.SH "デバッグ対象のプロセスに転送されるオプション" .SH "デバッガ・プロセスに転送されるオプション"
.PP .PP
\-v \-verbose[:\fIclass\fR|gc|jni] \-v \-verbose[:\fIclass\fR|gc|jni]
.RS 4 .RS 4
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jdeps" "1" "2013年11月21日" "JDK 8" "基本ツール" .TH "jdeps" "1" "2013年11月21日" "JDK 8" "基本ツール"
...@@ -113,7 +114,7 @@ DOT ...@@ -113,7 +114,7 @@ DOT
.RS 4 .RS 4
クラス・ファイルの検索場所を指定します。 クラス・ファイルの検索場所を指定します。
.sp .sp
Setting the Class Path も参照してください。 クラス・パスの設定 も参照してください。
.RE .RE
.PP .PP
\-p <\fIpkg name\fR> \-p <\fIpkg name\fR>
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: トラブルシューティング・ツール .\" SectDesc: トラブルシューティング・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jhat" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" .TH "jhat" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: トラブルシューティング・ツール .\" SectDesc: トラブルシューティング・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jinfo" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" .TH "jinfo" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール"
...@@ -115,7 +116,7 @@ jinfo \- ...@@ -115,7 +116,7 @@ jinfo \-
.RE .RE
.SH "説明" .SH "説明"
.PP .PP
\fBjinfo\fRコマンドは、指定されたJavaプロセスやコア・ファイルまたはリモート・デバッグ・サーバーのJava構成情報を出力します。構成情報には、Javaシステム・プロパティとJava Virtual Machine (JVM)のコマンド行フラグが含まれています。指定されたプロセスが64ビットJVM上で実行されている場合、\fB\-J\-d64\fRオプションを指定する必要がある場合があります。次に例を示します。\fBjinfo\fR \fBjinfo\fRコマンドは、指定されたJavaプロセスやコア・ファイルまたはリモート・デバッグ・サーバーのJava構成情報を出力します。構成情報には、Javaシステム・プロパティとJava仮想マシン(JVM)のコマンド行フラグが含まれています。指定されたプロセスが64ビットJVM上で実行されている場合、\fB\-J\-d64\fRオプションを指定する必要がある場合があります。次に例を示します。\fBjinfo\fR
\fB\-J\-d64 \-sysprops pid\fR。 \fB\-J\-d64 \-sysprops pid\fR。
.PP .PP
このユーティリティはサポート対象外であり、将来のJDKのリリースでは利用できなくなる可能性があります。\fBdbgeng\&.dll\fRが存在していないWindowsシステムでは、Debugging Tools For Windowsをインストールしないとこれらのツールが正常に動作しません。\fBPATH\fR環境変数には、ターゲット・プロセスによって使用されるjvm\&.dllの場所、またはクラッシュ・ダンプ・ファイルが生成された場所が含まれるようにしてください。たとえば、\fBset PATH=%JDK_HOME%\ejre\ebin\eclient;%PATH%\fRです。 このユーティリティはサポート対象外であり、将来のJDKのリリースでは利用できなくなる可能性があります。\fBdbgeng\&.dll\fRが存在していないWindowsシステムでは、Debugging Tools For Windowsをインストールしないとこれらのツールが正常に動作しません。\fBPATH\fR環境変数には、ターゲット・プロセスによって使用されるjvm\&.dllの場所、またはクラッシュ・ダンプ・ファイルが生成された場所が含まれるようにしてください。たとえば、\fBset PATH=%JDK_HOME%\ejre\ebin\eclient;%PATH%\fRです。
......
...@@ -23,14 +23,15 @@ ...@@ -23,14 +23,15 @@
.\" .\"
.\" Title: jjs .\" Title: jjs
.\" Language: Japanese .\" Language: Japanese
.\" Date: 2013年11月21 .\" Date: 2015年3月3
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jjs" "1" "2013年11月21日" "JDK 8" "基本ツール" .TH "jjs" "1" "2015年3月3日" "JDK 8" "基本ツール"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
...@@ -113,7 +114,7 @@ jjs \- Nashorn ...@@ -113,7 +114,7 @@ jjs \- Nashorn
.PP .PP
\-cp \fIpath\fR \-cp \fIpath\fR
.br .br
\-\-classpath \fIpath\fR \-classpath \fIpath\fR
.RS 4 .RS 4
サポートするクラスへのパスを指定します。複数のパスを設定するには、このオプションを繰り返すか、または各パスをコロン(:)で区切ります。 サポートするクラスへのパスを指定します。複数のパスを設定するには、このオプションを繰り返すか、または各パスをコロン(:)で区切ります。
.RE .RE
...@@ -221,6 +222,11 @@ jjs \- Nashorn ...@@ -221,6 +222,11 @@ jjs \- Nashorn
このオプションを繰り返し使用すると、複数の\fBjava\fRコマンド・オプションを渡すことができます。 このオプションを繰り返し使用すると、複数の\fBjava\fRコマンド・オプションを渡すことができます。
.RE .RE
.PP .PP
\-\-language=[es5]
.RS 4
ECMAScript言語バージョンを指定します。デフォルトのバージョンはES5です。
.RE
.PP
\-\-lazy\-compilation \-\-lazy\-compilation
.RS 4 .RS 4
レイジー・コード生成戦略(つまり、スクリプト全体が一度にコンパイルされない)を有効にします。このオプションは試験的なものです。 レイジー・コード生成戦略(つまり、スクリプト全体が一度にコンパイルされない)を有効にします。このオプションは試験的なものです。
...@@ -240,13 +246,17 @@ jjs \- Nashorn ...@@ -240,13 +246,17 @@ jjs \- Nashorn
.\} .\}
.nf .nf
\fB\-\-log=fields:finest,codegen:info\fR \fB\-\-log=fields:finest,codegen:info\fR
.fi .fi
.if n \{\ .if n \{\
.RE .RE
.\} .\}
.RE .RE
.PP .PP
\-\-optimistic\-types=[true|false]
.RS 4
再コンパイルの最適化を解除してオプティミスティック・タイプ仮定を有効または無効にします。オプティミスティック・タイプを使用した実行によって最終的な速度が向上しますが、ウォームアップ時間が増える場合があります。
.RE
.PP
\-\-package=\fIname\fR \-\-package=\fIname\fR
.RS 4 .RS 4
生成されたクラス・ファイルを追加するパッケージを指定します。 生成されたクラス・ファイルを追加するパッケージを指定します。
...@@ -323,7 +333,7 @@ jjs \- Nashorn ...@@ -323,7 +333,7 @@ jjs \- Nashorn
.br .br
\-timezone=\fIzone\fR \-timezone=\fIzone\fR
.RS 4 .RS 4
スクリプトの実行に対し指定したタイム・ゾーンを設定します。OSで設定されたタイム・ゾーンをオーバーライドし、\fBDate\fRオブジェクトで使用されます。 スクリプトの実行に対し指定したタイムゾーンを設定します。OSで設定されたタイムゾーンをオーバーライドし、\fBDate\fRオブジェクトで使用されます。
.RE .RE
.PP .PP
\-tcs=\fIparameter\fR \-tcs=\fIparameter\fR
...@@ -366,9 +376,7 @@ Nashorn ...@@ -366,9 +376,7 @@ Nashorn
.RE .RE
.SH "例" .SH "例"
.PP .PP
\fB例 1\fR \fB例 1 \fRNashornを使用したスクリプトの実行
.br
Nashornを使用したスクリプトの実行
.RS 4 .RS 4
.sp .sp
.if n \{\ .if n \{\
...@@ -383,9 +391,7 @@ Nashorn ...@@ -383,9 +391,7 @@ Nashorn
.\} .\}
.RE .RE
.PP .PP
\fB例 2\fR \fB例 2 \fR対話型モードでのNashornの実行
.br
対話型モードでのNashornの実行
.RS 4 .RS 4
.sp .sp
.if n \{\ .if n \{\
...@@ -404,9 +410,7 @@ Nashorn ...@@ -404,9 +410,7 @@ Nashorn
.\} .\}
.RE .RE
.PP .PP
\fB例 3\fR \fB例 3 \fRNashornへの引数の渡し
.br
Nashornへの引数の渡し
.RS 4 .RS 4
.sp .sp
.if n \{\ .if n \{\
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: トラブルシューティング・ツール .\" SectDesc: トラブルシューティング・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jmap" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" .TH "jmap" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: モニタリング・ツール .\" SectDesc: モニタリング・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jps" "1" "2013年11月21日" "JDK 8" "モニタリング・ツール" .TH "jps" "1" "2013年11月21日" "JDK 8" "モニタリング・ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: スクリプティング・ツール .\" SectDesc: スクリプティング・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jrunscript" "1" "2013年11月21日" "JDK 8" "スクリプティング・ツール" .TH "jrunscript" "1" "2013年11月21日" "JDK 8" "スクリプティング・ツール"
...@@ -86,7 +87,7 @@ jrunscript \- ...@@ -86,7 +87,7 @@ jrunscript \-
\-cp \fIpath\fR \-cp \fIpath\fR
.RS 4 .RS 4
\fB\-classpath\fR \fB\-classpath\fR
\fBpath\fRと同じです。 \fIpath\fRと同じです。
.RE .RE
.PP .PP
\-D\fIname\fR=\fIvalue\fR \-D\fIname\fR=\fIvalue\fR
...@@ -96,7 +97,7 @@ Java ...@@ -96,7 +97,7 @@ Java
.PP .PP
\-J\fIflag\fR \-J\fIflag\fR
.RS 4 .RS 4
\fBflag\fRを、\fBjrunscript\fRコマンドが実行されているJava Virtual Machineに直接渡します。 \fBflag\fRを、\fBjrunscript\fRコマンドが実行されているJava仮想マシンに直接渡します。
.RE .RE
.PP .PP
\-I \fIlanguage\fR \-I \fIlanguage\fR
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: トラブルシューティング・ツール .\" SectDesc: トラブルシューティング・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jsadebugd" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" .TH "jsadebugd" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール"
...@@ -95,7 +96,7 @@ jsadebugd \- Java ...@@ -95,7 +96,7 @@ jsadebugd \- Java
.RE .RE
.SH "説明" .SH "説明"
.PP .PP
\fBjsadebugd\fRコマンドは、Javaプロセスまたはコア・ファイルに接続し、デバッグ・サーバーとして機能します。\fBjstack\fR、\fBjmap\fRおよび\fBjinfo\fRなどのリモート・クライアントは、Java Remote Method Invocation(RMI)を使用しているサーバーに接続できます。\fBjsadebugd\fRコマンドを起動する前に、\fBrmiregistry\fRコマンドでRMIレジストリを次のように起動します。\fI$JAVA_HOME\fRはJDKのインストール・ディレクトリです。 \fBjsadebugd\fRコマンドは、Javaプロセスまたはコア・ファイルに接続し、デバッグ・サーバーとして機能します。\fBjstack\fR、\fBjmap\fRおよび\fBjinfo\fRなどのリモート・クライアントは、Java Remote Method Invocation (RMI)を使用しているサーバーに接続できます。\fBjsadebugd\fRコマンドを起動する前に、\fBrmiregistry\fRコマンドでRMIレジストリを次のように起動します。\fI$JAVA_HOME\fRはJDKのインストール・ディレクトリです。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: トラブルシューティング・ツール .\" SectDesc: トラブルシューティング・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jstack" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" .TH "jstack" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール"
...@@ -115,7 +116,7 @@ jstack \- Java ...@@ -115,7 +116,7 @@ jstack \- Java
.RE .RE
.SH "説明" .SH "説明"
.PP .PP
\fBjstack\fRコマンドは、指定されたJavaプロセス、コア・ファイルまたはリモート・デバッグ・サーバーに対するJavaスレッドのJavaスタック・トレースを出力します。Javaフレームごとに、フルクラス名、メソッド名、バイトコード・インデックス(bci)、および行番号(利用可能な場合)が出力されます。\fB\-m\fRオプションを使用すると、\fBjstack\fRコマンドは、すべてのスレッドのJavaフレームとネイティブ・フレームの両方を、プログラム・カウンタ(PC)とともに出力します。ネイティブ・フレームごとに、PCに最も近いネイティブ・シンボル(利用可能な場合)が出力されます。C++分解名は分解解除されません。C++名を分解解除するには、このコマンドの出力を\fBc++filt\fRにパイプします。指定されたプロセスが64ビットJava Virtual Machine上で実行されている場合は、\fB\-J\-d64\fRオプションを指定する必要があります(例: \fBjstack\fRコマンドは、指定されたJavaプロセス、コア・ファイルまたはリモート・デバッグ・サーバーに対するJavaスレッドのJavaスタック・トレースを出力します。Javaフレームごとに、フルクラス名、メソッド名、バイトコード・インデックス(bci)、および行番号(利用可能な場合)が出力されます。\fB\-m\fRオプションを使用すると、\fBjstack\fRコマンドは、すべてのスレッドのJavaフレームとネイティブ・フレームの両方を、プログラム・カウンタ(PC)とともに出力します。ネイティブ・フレームごとに、PCに最も近いネイティブ・シンボル(利用可能な場合)が出力されます。C++分解名は分解解除されません。C++名を分解解除するには、このコマンドの出力を\fBc++filt\fRにパイプします。指定されたプロセスが64ビットJava仮想マシン上で実行されている場合は、\fB\-J\-d64\fRオプションを指定する必要があります(例:
\fBjstack \-J\-d64 \-m pid\fR)。 \fBjstack \-J\-d64 \-m pid\fR)。
.PP .PP
\fB注意\fR \fB注意\fR
......
...@@ -23,14 +23,15 @@ ...@@ -23,14 +23,15 @@
.\" .\"
.\" Title: jstat .\" Title: jstat
.\" Language: Japanese .\" Language: Japanese
.\" Date: 2011年5月10 .\" Date: 2015年3月3
.\" SectDesc: モニタリング・ツール .\" SectDesc: モニタリング・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jstat" "1" "2011年5月10日" "JDK 8" "モニタリング・ツール" .TH "jstat" "1" "2015年3月3日" "JDK 8" "モニタリング・ツール"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
...@@ -276,6 +277,10 @@ Java HotSpot VM Just\-in\-Time ...@@ -276,6 +277,10 @@ Java HotSpot VM Just\-in\-Time
.sp .sp
\fBMU\fR: メタスペースの使用率(KB)。 \fBMU\fR: メタスペースの使用率(KB)。
.sp .sp
\fBCCSC\fR: 圧縮されたクラス領域の容量(KB)。
.sp
\fBCCSU\fR: 使用されている圧縮されたクラス領域(KB)。
.sp
\fBYGC\fR: 若い世代のガベージ・コレクション・イベントの数。 \fBYGC\fR: 若い世代のガベージ・コレクション・イベントの数。
.sp .sp
\fBYGCT\fR: 若い世代のガベージ・コレクション時間。 \fBYGCT\fR: 若い世代のガベージ・コレクション時間。
...@@ -317,6 +322,12 @@ Java HotSpot VM Just\-in\-Time ...@@ -317,6 +322,12 @@ Java HotSpot VM Just\-in\-Time
.sp .sp
\fBMC\fR: メタスペースの容量(KB)。 \fBMC\fR: メタスペースの容量(KB)。
.sp .sp
\fBCCSMN\fR: 圧縮されたクラス領域の最小容量(KB)。
.sp
\fBCCSMX\fR: 圧縮されたクラス領域の最大容量(KB)。
.sp
\fBCCSC\fR: 圧縮されたクラス領域の容量(KB)。
.sp
\fBYGC\fR: 若い世代のGCイベント数。 \fBYGC\fR: 若い世代のGCイベント数。
.sp .sp
\fBFGC\fR: フルGCイベント数。 \fBFGC\fR: フルGCイベント数。
...@@ -326,11 +337,9 @@ Java HotSpot VM Just\-in\-Time ...@@ -326,11 +337,9 @@ Java HotSpot VM Just\-in\-Time
.RS 4 .RS 4
このオプションは、\fB\-gcutil\fRオプションと同じガベージ・コレクション統計データのサマリーを表示しますが、最後のガベージ・コレクション・イベントと(適用可能な場合は)現在のガベージ・コレクション・イベントの原因が含まれます。\fB\-gcutil\fRで一覧表示される列のほか、このオプションでは次の列が追加されます。 このオプションは、\fB\-gcutil\fRオプションと同じガベージ・コレクション統計データのサマリーを表示しますが、最後のガベージ・コレクション・イベントと(適用可能な場合は)現在のガベージ・コレクション・イベントの原因が含まれます。\fB\-gcutil\fRで一覧表示される列のほか、このオプションでは次の列が追加されます。
.sp .sp
ガベージ・コレクション・イベントを含むガベージ・コレクション統計データ。 \fBLGCC\fR: 最後のガベージ・コレクションの原因
.sp
\fBLGCC\fR: 最後のガベージ・コレクションの原因。
.sp .sp
\fBGCC\fR: 現在のガベージ・コレクションの原因 \fBGCC\fR: 現在のガベージ・コレクションの原因
.RE .RE
.PP .PP
\-gcnew \fIoption\fR \-gcnew \fIoption\fR
...@@ -364,7 +373,7 @@ New ...@@ -364,7 +373,7 @@ New
.RS 4 .RS 4
New世代領域サイズの統計データ。 New世代領域サイズの統計データ。
.sp .sp
NGCMN: New世代の最小容量(KB)。 \fBNGCMN\fR: New世代の最小容量(KB)。
.sp .sp
\fBNGCMX\fR: New世代の最大容量(KB)。 \fBNGCMX\fR: New世代の最大容量(KB)。
.sp .sp
...@@ -395,6 +404,10 @@ Old ...@@ -395,6 +404,10 @@ Old
.sp .sp
\fBMU\fR: メタスペースの使用率(KB)。 \fBMU\fR: メタスペースの使用率(KB)。
.sp .sp
\fBCCSC\fR: 圧縮されたクラス領域の容量(KB)。
.sp
\fBCCSU\fR: 使用されている圧縮されたクラス領域(KB)。
.sp
\fBOC\fR: Old領域の現在の容量(KB)。 \fBOC\fR: Old領域の現在の容量(KB)。
.sp .sp
\fBOU\fR: Old領域の使用率(KB)。 \fBOU\fR: Old領域の使用率(KB)。
...@@ -439,6 +452,10 @@ Permanent ...@@ -439,6 +452,10 @@ Permanent
.sp .sp
\fBMC\fR: メタスペースの容量(KB)。 \fBMC\fR: メタスペースの容量(KB)。
.sp .sp
\fBCCSMN\fR: 圧縮されたクラス領域の最小容量(KB)。
.sp
\fBCCSMX\fR: 圧縮されたクラス領域の最大容量(KB)。
.sp
\fBYGC\fR: 若い世代のGCイベント数。 \fBYGC\fR: 若い世代のGCイベント数。
.sp .sp
\fBFGC\fR: フルGCイベント数。 \fBFGC\fR: フルGCイベント数。
...@@ -462,6 +479,8 @@ Permanent ...@@ -462,6 +479,8 @@ Permanent
.sp .sp
\fBM\fR: メタスペースの使用率(領域の現在の容量に対するパーセンテージ)。 \fBM\fR: メタスペースの使用率(領域の現在の容量に対するパーセンテージ)。
.sp .sp
\fBCCS\fR: 圧縮されたクラス領域の使用率(パーセンテージ)。
.sp
\fBYGC\fR: 若い世代のGCイベント数。 \fBYGC\fR: 若い世代のGCイベント数。
.sp .sp
\fBYGCT\fR: 若い世代のガベージ・コレクション時間。 \fBYGCT\fR: 若い世代のガベージ・コレクション時間。
...@@ -493,29 +512,28 @@ Java HotSpot VM ...@@ -493,29 +512,28 @@ Java HotSpot VM
.PP .PP
この例では、lvmid 21891に接続して、250ミリ秒間隔で7つのサンプルを取得し、\-\fBgcutil\fRオプションでの指定に従って出力を表示します。 この例では、lvmid 21891に接続して、250ミリ秒間隔で7つのサンプルを取得し、\-\fBgcutil\fRオプションでの指定に従って出力を表示します。
.PP .PP
この例の出力は、若い世代のコレクションが3番目と4番目のサンプル間で行われたことを示しています。コレクションには0\&.001秒かかっており、オブジェクトがEden領域(E)からOld領域(O)に昇格したため、Old領域の使用率は9\&.49%から9\&.51%に増加しています。Survivor領域は、コレクション前は12\&.44%が使用されていましたが、コレクション後の使用は7\&.74%のみです。 この例の出力は、若い世代のコレクションが3番目と4番目のサンプル間で行われたことを示しています。コレクションには0\&.078秒かかっており、オブジェクトがEden領域(E)からOld領域(O)に昇格したため、Old領域の使用率は66\&.80%から68\&.19%に増加しています。Survivor領域は、コレクション前は97\&.02%が使用されていましたが、コレクション後の使用は91\&.03%です。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
.\} .\}
.nf .nf
\fBjstat \-gcutil 21891 250 7\fR \fBjstat \-gcutil 21891 250 7\fR
\fB S0 S1 E O M YGC YGCT FGC FGCT GCT\fR \fB S0 S1 E O M CCS YGC YGCT FGC FGCT GCT \fR
\fB0\&.00 99\&.74 13\&.49 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR \fB 0\&.00 97\&.02 70\&.31 66\&.80 95\&.52 89\&.14 7 0\&.300 0 0\&.000 0\&.300\fR
\fB0\&.00 99\&.74 13\&.49 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR \fB 0\&.00 97\&.02 86\&.23 66\&.80 95\&.52 89\&.14 7 0\&.300 0 0\&.000 0\&.300\fR
\fB0\&.00 99\&.74 13\&.49 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR \fB 0\&.00 97\&.02 96\&.53 66\&.80 95\&.52 89\&.14 7 0\&.300 0 0\&.000 0\&.300\fR
\fB0\&.00 99\&.74 13\&.49 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR \fB 91\&.03 0\&.00 1\&.98 68\&.19 95\&.89 91\&.24 8 0\&.378 0 0\&.000 0\&.378\fR
\fB0\&.00 99\&.74 13\&.80 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR \fB 91\&.03 0\&.00 15\&.82 68\&.19 95\&.89 91\&.24 8 0\&.378 0 0\&.000 0\&.378\fR
\fB0\&.00 99\&.74 13\&.80 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR \fB 91\&.03 0\&.00 17\&.80 68\&.19 95\&.89 91\&.24 8 0\&.378 0 0\&.000 0\&.378\fR
\fB0\&.00 99\&.74 13\&.80 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR \fB 91\&.03 0\&.00 17\&.80 68\&.19 95\&.89 91\&.24 8 0\&.378 0 0\&.000 0\&.378\fR
.fi .fi
.if n \{\ .if n \{\
.RE .RE
.\} .\}
.SS "列ヘッダー文字列の繰返し" .SS "列ヘッダー文字列の繰返し"
.PP .PP
この例では、lvmid 21891に接続して、250ミリ秒間隔でサンプルを取得し、\fB\-gcutil\fRオプションでの指定に従って出力を表示します。さらに、\fB\-h3\fRオプションを使用して、データが3行表示されるごとに列ヘッダーを出力します。 この例では、lvmid 21891に接続して、250ミリ秒間隔でサンプルを取得し、\fB\-gcnew\fRオプションでの指定に従って出力を表示します。さらに、\fB\-h3\fRオプションを使用して、データが3行表示されるごとに列ヘッダーを出力します。
.PP .PP
この例では、ヘッダー文字列の繰返しが表示されているほか、2番目と3番目のサンプル間でYoung GCが行われたことがわかります。この継続時間は0\&.001秒でした。このコレクションでは、Survivor領域0の使用率(S0U)が適切なSurvivorサイズ(DSS)を超過することになるアクティブ・データが検出されました。この結果、オブジェクトは、Old世代(この出力には非表示)へ昇格され、殿堂入りしきい値(TT)が、31から2へ降格されました。 この例では、ヘッダー文字列の繰返しが表示されているほか、2番目と3番目のサンプル間でYoung GCが行われたことがわかります。この継続時間は0\&.001秒でした。このコレクションでは、Survivor領域0の使用率(S0U)が適切なSurvivorサイズ(DSS)を超過することになるアクティブ・データが検出されました。この結果、オブジェクトは、Old世代(この出力には非表示)へ昇格され、殿堂入りしきい値(TT)が、31から2へ降格されました。
.PP .PP
...@@ -545,7 +563,7 @@ Java HotSpot VM ...@@ -545,7 +563,7 @@ Java HotSpot VM
.PP .PP
この例では、lvmid21891へ接続し、250ミリ秒間隔で3つのサンプルを取得しています。\fB\-t\fRオプションを使用して、最初の列にサンプルごとのタイムスタンプを表示しています。 この例では、lvmid21891へ接続し、250ミリ秒間隔で3つのサンプルを取得しています。\fB\-t\fRオプションを使用して、最初の列にサンプルごとのタイムスタンプを表示しています。
.PP .PP
Timestamp列には、ターゲットJVMの起動時からの経過時間が、秒単位でレポートされています。さらに、\fB\-gcoldcapacity\fR出力では、割当リクエストまたは昇格リクエストあるいはその両方を満たすためにヒープが拡張するたびに、Old世代の容量(OGC)とOld領域の容量(OC)とが増加していることがわかります。81番目のフル・ガベージ・コレクション(FGC)の後、Old世代の容量(OGC)は11,696 KBから13820 KBに増加しました。この世代(および領域)の最大容量は、60,544 KB (OGCMX)なので、まだ拡張できる余裕が残されています。 Timestamp列には、ターゲットJVMの起動時からの経過時間が、秒単位でレポートされています。さらに、\fB\-gcoldcapacity\fR出力では、割当リクエストまたは昇格リクエストあるいはその両方を満たすためにヒープが拡張するたびに、Old世代の容量(OGC)とOld領域の容量(OC)とが増加していることがわかります。81番目のフル・ガベージ・コレクション(FGC)の後、Old世代の容量(OGC)は11,696KBから13,820KBに増加しました。この世代(および領域)の最大容量は、60,544KB (OGCMX)なので、まだ拡張できる余裕が残されています。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
...@@ -564,7 +582,7 @@ Timestamp ...@@ -564,7 +582,7 @@ Timestamp
.PP .PP
この例は、\fB\-gcutil\fRオプションを使用して、remote\&.domainというシステム上のlvmid 40496に接続し、サンプルを秒単位で無期限に取得しています。 この例は、\fB\-gcutil\fRオプションを使用して、remote\&.domainというシステム上のlvmid 40496に接続し、サンプルを秒単位で無期限に取得しています。
.PP .PP
lvmidは、リモート・ホストの名前と結合されて、\fB40496@remote\&.domain\fRの\fIvmid\fRを構成しています。結果として、このvmidは、\fBrmi\fRプロトコルを使用して、リモート・ホスト上のデフォルトの\fBjstatd\fRサーバーと通信します。\fBjstatd\fRサーバーは、rmiregistryを使用して、デフォルトのrmiregistryポート(ポート1099)にバインドされた\fBremote\&.domain\fRに配置されます。 lvmidは、リモート・ホストの名前と結合されて、\fB40496@remote\&.domain\fRの\fIvmid\fRを構成しています。結果として、このvmidは、\fBrmi\fRプロトコルを使用して、リモート・ホスト上のデフォルトの\fBjstatd\fRサーバーと通信します。\fBjstatd\fRサーバーは、\fBrmiregistry\fRコマンドを使用して、\fBrmiregistry\fRコマンドのデフォルトのポート(ポート1099)にバインドされた\fBremote\&.domain\fRに配置されます。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: モニタリング・ツール .\" SectDesc: モニタリング・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jstatd" "1" "2013年11月21日" "JDK 8" "モニタリング・ツール" .TH "jstatd" "1" "2013年11月21日" "JDK 8" "モニタリング・ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Javaトラブルシューティング、プロファイリング、モニタリングおよび管理ツール .\" SectDesc: Javaトラブルシューティング、プロファイリング、モニタリングおよび管理ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jvisualvm" "1" "2013年11月21日" "JDK 8" "Javaトラブルシューティング、プロファイリング、モニタリン" .TH "jvisualvm" "1" "2013年11月21日" "JDK 8" "Javaトラブルシューティング、プロファイリング、モニタリン"
...@@ -51,7 +52,7 @@ ...@@ -51,7 +52,7 @@
.\" * MAIN CONTENT STARTS HERE * .\" * MAIN CONTENT STARTS HERE *
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.SH "名前" .SH "名前"
jvisualvm \- Javaアプリケーションを視覚的にモニターし、トラブルシューティングとプロファイリングを行います。 jvisualvm \- Javaアプリケーションを視覚的にモニター、トラブルシュートおよびプロファイルします。
.SH "概要" .SH "概要"
.sp .sp
.if n \{\ .if n \{\
......
...@@ -23,14 +23,15 @@ ...@@ -23,14 +23,15 @@
.\" .\"
.\" Title: keytool .\" Title: keytool
.\" Language: Japanese .\" Language: Japanese
.\" Date: 2013年8月6 .\" Date: 2015年3月3
.\" SectDesc: セキュリティ・ツール .\" SectDesc: セキュリティ・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "keytool" "1" "2013年8月6日" "JDK 8" "セキュリティ・ツール" .TH "keytool" "1" "2015年3月3日" "JDK 8" "セキュリティ・ツール"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
...@@ -375,7 +376,7 @@ keytool \- ...@@ -375,7 +376,7 @@ keytool \-
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
イタリックになっていないすべての項目、または中カッコか角カッコで囲まれているすべての項目は、そのとおりに指定する必要があります。 イタリックになっていないすべての項目、または中カッコか角カッコで囲まれているすべての項目は、そのとおりに指定する必要があります。
.RE .RE
.sp .sp
.RS 4 .RS 4
...@@ -408,11 +409,19 @@ keytool \- ...@@ -408,11 +409,19 @@ keytool \-
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
イタリックの項目の実際の値(オプションの値)は、指定する必要があります。たとえば、\fB\-printcert\fRコマンドの形式は次のとおりです。 イタリックの項目の実際の値(オプションの値)は、指定する必要があります。たとえば、\fB\-printcert\fRコマンドの形式は次のとおりです。
.sp .sp
\fBkeytool \-printcert {\-file cert_file} {\-v}\fR .if n \{\
.RS 4
.\}
.nf
\fBkeytool \-printcert {\-file \fR\fB\fIcert_file\fR\fR\fB} {\-v}\fR
.fi
.if n \{\
.RE
.\}
.sp .sp
\fB\-printcert\fRコマンドを指定する場合は、\fBcert_file\fRを実際のファイル名で置き換えます。例: \fB\-printcert\fRコマンドを指定する場合は、\fIcert_file\fRを実際のファイル名で置き換えます。例:
\fBkeytool \-printcert \-file VScert\&.cer\fR \fBkeytool \-printcert \-file VScert\&.cer\fR
.RE .RE
.sp .sp
...@@ -624,8 +633,7 @@ EKU ...@@ -624,8 +633,7 @@ EKU
SANまたはSubjectAlternativeName SANまたはSubjectAlternativeName
.RS 4 .RS 4
\fB値\fR: \fB値\fR:
\fBtype\fR:\fBvalue\fR \fBtype\fR:\fBvalue\fR(t\fBype:value\fR)*、\fBtype\fRには\fBEMAIL\fR、\fBURI\fR、\fBDNS\fR、\fBIP\fRまたは\fBOID\fRを指定できます。\fBvalue\fR引数は、\fBtype\fRの文字列形式の値です。
(t\fBype:value\fR)*、\fBtype\fRには\fBEMAIL\fR、\fBURI\fR、\fBDNS\fR、\fBIP\fRまたは\fBOID\fRを指定できます。\fBvalue\fR引数は、\fBtype\fRの文字列形式の値です。
.RE .RE
.PP .PP
IANまたはIssuerAlternativeName IANまたはIssuerAlternativeName
...@@ -662,8 +670,66 @@ AIA ...@@ -662,8 +670,66 @@ AIA
.PP .PP
\-gencert \-gencert
.RS 4 .RS 4
\fB{\-rfc} {\-infile infile} {\-outfile outfile} {\-alias alias} {\-sigalg sigalg} {\-dname dname} {\-startdate startdate {\-ext ext}* {\-validity valDays} [\-keypass keypass] {\-keystore keystore} [\-storepass storepass] {\-storetype storetype} {\-providername provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-rfc} {\-infile \fR\fB\fIinfile\fR\fR\fB} {\-outfile \fR\fB\fIoutfile\fR\fR\fB} {\-alias \fR\fB\fIalias\fR\fR\fB} {\-sigalg \fR\fB\fIsigalg\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-dname \fR\fB\fIdname\fR\fR\fB} {\-startdate \fR\fB\fIstartdate\fR\fR\fB {\-ext \fR\fB\fIext\fR\fR\fB}* {\-validity \fR\fB\fIvalDays\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB[\-keypass \fR\fB\fIkeypass\fR\fR\fB] {\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-providername \fR\fB\fIprovider_name\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-v} {\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
証明書リクエスト・ファイル(\fBkeytool\fR 証明書リクエスト・ファイル(\fBkeytool\fR
\fB\-certreq\fRコマンドで作成可能)に対するレスポンスとして証明書を生成します。このコマンドは、\fIinfile\fRから(省略した場合は、標準入力から)リクエストを読み込み、別名の秘密鍵を使用してそのリクエストに署名して、X\&.509証明書を\fIoutfile\fRに(省略した場合は、標準出力に)出力します。\fB\-rfc\fRを指定した場合、出力形式はBASE64符号化のPEMになります。それ以外の場合は、バイナリDERが作成されます。 \fB\-certreq\fRコマンドで作成可能)に対するレスポンスとして証明書を生成します。このコマンドは、\fIinfile\fRから(省略した場合は、標準入力から)リクエストを読み込み、別名の秘密鍵を使用してそのリクエストに署名して、X\&.509証明書を\fIoutfile\fRに(省略した場合は、標準出力に)出力します。\fB\-rfc\fRを指定した場合、出力形式はBASE64符号化のPEMになります。それ以外の場合は、バイナリDERが作成されます。
.sp .sp
...@@ -724,8 +790,66 @@ AIA ...@@ -724,8 +790,66 @@ AIA
.PP .PP
\-genkeypair \-genkeypair
.RS 4 .RS 4
\fB{\-alias alias} {\-keyalg keyalg} {\-keysize keysize} {\-sigalg sigalg} [\-dname dname] [\-keypass keypass] {\-startdate value} {\-ext ext}* {\-validity valDays} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-alias \fR\fB\fIalias\fR\fR\fB} {\-keyalg \fR\fB\fIkeyalg\fR\fR\fB} {\-keysize \fR\fB\fIkeysize\fR\fR\fB} {\-sigalg \fR\fB\fIsigalg\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB[\-dname \fR\fB\fIdname\fR\fR\fB] [\-keypass \fR\fB\fIkeypass\fR\fR\fB] {\-startdate \fR\fB\fIvalue\fR\fR\fB} {\-ext \fR\fB\fIext\fR\fR\fB}*\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-validity \fR\fB\fIvalDays\fR\fR\fB} {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB[\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-v} {\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
鍵のペア(公開鍵および関連する秘密鍵)を生成します。公開鍵はX\&.509 v3自己署名証明書でラップされます。証明書は、単一の要素を持つ証明書チェーンとして格納されます。この証明書チェーンと秘密鍵は、aliasで特定される新しいキーストア・エントリに格納されます。 鍵のペア(公開鍵および関連する秘密鍵)を生成します。公開鍵はX\&.509 v3自己署名証明書でラップされます。証明書は、単一の要素を持つ証明書チェーンとして格納されます。この証明書チェーンと秘密鍵は、aliasで特定される新しいキーストア・エントリに格納されます。
.sp .sp
\fBkeyalg\fR値は鍵ペアの生成に使用するアルゴリズムを、\fBkeysize\fR値は生成する各鍵のサイズを、それぞれ指定します。\fBsigalg\fR値は、自己署名証明書に署名を付けるために使用するアルゴリズムを指定します。このアルゴリズムは\fBkeyalg\fR値と互換性がある必要があります。 \fBkeyalg\fR値は鍵ペアの生成に使用するアルゴリズムを、\fBkeysize\fR値は生成する各鍵のサイズを、それぞれ指定します。\fBsigalg\fR値は、自己署名証明書に署名を付けるために使用するアルゴリズムを指定します。このアルゴリズムは\fBkeyalg\fR値と互換性がある必要があります。
...@@ -758,7 +882,7 @@ AIA ...@@ -758,7 +882,7 @@ AIA
.if n \{\ .if n \{\
.RE .RE
.\} .\}
2番目の形式では、ユーザーは、年/月/日と時間:分:秒の2つの部分からなる正確な発行時刻を設定します(ローカルのタイム・ゾーンを使用)。ユーザーは、1つの部分のみを指定できます。これは、もう1つの部分は現在の日付(または時刻)と同じになるということです。ユーザーは、形式の定義に示されているように、桁数を厳密に指定する必要があります(短い場合は0で埋めます)。日付と時刻の両方が指定された状態で、2つの部分の間に空白文字が1つ(1つのみ)あります。時間は常に24時間形式で指定してください。 2番目の形式では、ユーザーは、年/月/日と時間:分:秒の2つの部分で厳密な開始時刻を設定します(地元の時間帯を使用)。ユーザーは、1つの部分のみを指定できます。これは、もう1つの部分は現在の日付(または時刻)と同じになるということです。ユーザーは、形式の定義に示されているように、桁数を厳密に指定する必要があります(短い場合は0で埋めます)。日付と時刻の両方が指定された状態で、2つの部分の間に空白文字が1つ(1つのみ)あります。時間は常に24時間形式で指定してください。
.sp .sp
オプションを指定しないと、開始日付は現在の時刻になります。オプションは、最大で1回指定できます。 オプションを指定しないと、開始日付は現在の時刻になります。オプションは、最大で1回指定できます。
.sp .sp
...@@ -769,8 +893,46 @@ AIA ...@@ -769,8 +893,46 @@ AIA
.PP .PP
\-genseckey \-genseckey
.RS 4 .RS 4
\fB\-genseckey {\-alias alias} {\-keyalg keyalg} {\-keysize keysize} [\-keypass keypass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-alias \fR\fB\fIalias\fR\fR\fB} {\-keyalg \fR\fB\fIkeyalg\fR\fR\fB} {\-keysize \fR\fB\fIkeysize\fR\fR\fB} [\-keypass \fR\fB\fIkeypass\fR\fR\fB]\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}} {\-v}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
秘密鍵を生成し、それを新しい\fBKeyStore\&.SecretKeyEntry\fR(\fBalias\fRで特定される)内に格納します。 秘密鍵を生成し、それを新しい\fBKeyStore\&.SecretKeyEntry\fR(\fBalias\fRで特定される)内に格納します。
.sp .sp
\fBkeyalg\fR値は鍵ペアの生成に使用するアルゴリズムを、\fBkeysize\fR値は生成する各鍵のサイズを、それぞれ指定します。\fBkeypass\fR値は、秘密鍵を保護するパスワードです。パスワードを指定しなかった場合は、パスワードの入力を求められます。このとき、[Return]キーを押すと、\fBkeystore\fRのパスワードと同じパスワードが鍵のパスワードに設定されます。\fBkeypass\fR値は、6文字以上にする必要があります。 \fBkeyalg\fR値は鍵ペアの生成に使用するアルゴリズムを、\fBkeysize\fR値は生成する各鍵のサイズを、それぞれ指定します。\fBkeypass\fR値は、秘密鍵を保護するパスワードです。パスワードを指定しなかった場合は、パスワードの入力を求められます。このとき、[Return]キーを押すと、\fBkeystore\fRのパスワードと同じパスワードが鍵のパスワードに設定されます。\fBkeypass\fR値は、6文字以上にする必要があります。
...@@ -778,8 +940,56 @@ AIA ...@@ -778,8 +940,56 @@ AIA
.PP .PP
\-importcert \-importcert
.RS 4 .RS 4
\fB\-importcert {\-alias alias} {\-file cert_file} [\-keypass keypass] {\-noprompt} {\-trustcacerts} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-alias \fR\fB\fIalias\fR\fR\fB} {\-file \fR\fB\fIcert_file\fR\fR\fB} [\-keypass \fR\fB\fIkeypass\fR\fR\fB] {\-noprompt} {\-trustcacerts}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-v} {\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
ファイル\fBcert_file\fRから証明書または証明書チェーン(証明書チェーンの場合は、PKCS#7形式の応答または一連のX\&.509証明書で提供されるもの)を読み込み、\fBalias\fRによって特定される\fBkeystore\fRエントリに格納します。ファイルが指定されていない場合は、\fBstdin\fRから証明書または証明書チェーンを読み込みます。 ファイル\fBcert_file\fRから証明書または証明書チェーン(証明書チェーンの場合は、PKCS#7形式の応答または一連のX\&.509証明書で提供されるもの)を読み込み、\fBalias\fRによって特定される\fBkeystore\fRエントリに格納します。ファイルが指定されていない場合は、\fBstdin\fRから証明書または証明書チェーンを読み込みます。
.sp .sp
\fBkeytool\fRコマンドでは、X\&.509 v1、v2、v3の証明書、およびPKCS#7形式の証明書から構成されているPKCS#7形式の証明書チェーンをインポートできます。インポートするデータは、バイナリ符号化方式、または出力可能符号化方式(Base64符号化とも呼ばれる)のどちらかで提供する必要があります。出力可能符号化方式は、インターネットRFC 1421証明書符号化規格で定義されています。この符号化方式の場合、証明書は\fB\-\fR\fB\-\-\-\-BEGIN\fRで始まる文字列で開始され、\fB\-\-\-\-\-END\fRで始まる文字列で終了する必要があります。 \fBkeytool\fRコマンドでは、X\&.509 v1、v2、v3の証明書、およびPKCS#7形式の証明書から構成されているPKCS#7形式の証明書チェーンをインポートできます。インポートするデータは、バイナリ符号化方式、または出力可能符号化方式(Base64符号化とも呼ばれる)のどちらかで提供する必要があります。出力可能符号化方式は、インターネットRFC 1421証明書符号化規格で定義されています。この符号化方式の場合、証明書は\fB\-\fR\fB\-\-\-\-BEGIN\fRで始まる文字列で開始され、\fB\-\-\-\-\-END\fRで始まる文字列で終了する必要があります。
...@@ -791,44 +1001,216 @@ AIA ...@@ -791,44 +1001,216 @@ AIA
.PP .PP
\-importpassword \-importpassword
.RS 4 .RS 4
\fB{\-alias alias} [\-keypass keypass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption}\fR
.sp .sp
パスフレーズをインポートし、\fBalias\fRで識別される新規\fBKeyStore\&.SecretKeyEntry\fRに格納します。パスフレーズは、標準入力ストリームを介して提供できます。または、ユーザーにそのプロンプトが表示されます。\fBkeypass\fRは、インポートされるパスフレーズの保護に使用されるパスワードです。パスワードを指定しなかった場合は、パスワードの入力を求められます。このとき、[Return]キーを押すと、\fBkeystore\fRのパスワードと同じパスワードが鍵のパスワードに設定されます。\fBkeypass\fRは、6文字以上にする必要があります。 .if n \{\
.RE
.PP
\-importkeystore
.RS 4 .RS 4
\fB{\-srcstoretype srcstoretype} {\-deststoretype deststoretype} [\-srcstorepass srcstorepass] [\-deststorepass deststorepass] {\-srcprotected} {\-destprotected} {\-srcalias srcalias {\-destalias destalias} [\-srckeypass srckeypass] } [\-destkeypass destkeypass] {\-noprompt} {\-srcProviderName src_provider_name} {\-destProviderName dest_provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption}\fR .\}
.sp .nf
ソース・キーストアからターゲット・キーストアへ、単一のエントリまたはすべてのエントリをインポートします。 \fB{\-alias \fR\fB\fIalias\fR\fR\fB} [\-keypass \fR\fB\fIkeypass\fR\fR\fB] {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB}\fR
.sp .fi
\fB\-srcalias\fRオプションが指定された場合、このコマンドは、その別名で特定される単一のエントリをターゲット・キーストアにインポートします。\fBdestalias\fR経由でターゲット別名が指定されなかった場合、\fBsrcalias\fRがターゲット別名として使用されます。ソースのエントリがパスワードで保護されていた場合、\fBsrckeypass\fRを使用してそのエントリが回復されます。\fIsrckeypass\fRが指定されなかった場合、\fBkeytool\fRコマンドは\fBsrcstorepass\fRを使用してそのエントリを回復しようとします。\fBsrcstorepass\fRが指定されなかったか正しくなかった場合、ユーザーはパスワードの入力を求められます。ターゲットのエントリは\fBdestkeypass\fRによって保護されます。\fBdestkeypass\fRが指定されなかった場合、ターゲット・エントリはソース・エントリのパスワードによって保護されます。たとえば、ほとんどのサード・パーティ・ツールでは、PKCS #12キーストアで\fBstorepass\fRと\fBkeypass\fRが同じである必要があります。これらのツールのPKCS #12キーストアを作成する場合は、常に\fB\-destkeypass\fRと\fB\-deststorepass\fRが同じになるように指定します。 .if n \{\
.sp .RE
\fB\-srcalias\fRオプションが指定されなかった場合、ソース・キーストア内のすべてのエントリがターゲット・キーストア内にインポートされます。各ターゲット・エントリは対応するソース・エントリの別名の下に格納されます。ソースのエントリがパスワードで保護されていた場合、\fBsrcstorepass\fRを使用してそのエントリが回復されます。\fBsrcstorepass\fRが指定されなかったか正しくなかった場合、ユーザーはパスワードの入力を求められます。ソース・キーストア内のあるエントリ・タイプがターゲット・キーストアでサポートされていない場合や、あるエントリをターゲット・キーストアに格納する際にエラーが発生した場合、ユーザーはそのエントリをスキップして処理を続行するか、または中止するかの選択を求められます。ターゲット・エントリはソース・エントリのパスワードによって保護されます。 .\}
.sp
ターゲット別名がターゲット・キーストア内にすでに存在していた場合、ユーザーは、そのエントリを上書きするか、あるいは異なる別名の下で新しいエントリを作成するかの選択を求められます。
.sp .sp
.if n \{\
\fB\-noprompt\fRオプションを指定した場合、ユーザーは新しいターゲット別名の入力を求められません。既存のエントリがそのターゲット別名で上書きされます。インポートできないエントリはスキップされ、警告が出力されます。 .RS 4
.\}
.nf
\fB[\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR
.fi
.if n \{\
.RE .RE
.PP .\}
\-printcertreq .sp
.if n \{\
.RS 4 .RS 4
\fB{\-file file}\fR .\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR
.fi
.if n \{\
.RE
.\}
.sp .sp
PKCS#10形式の証明書リクエストの内容を出力します。このリクエストは、\fBkeytool\fR .if n \{\
\fB\-certreq\fRコマンドで生成できます。このコマンドは、ファイルからリクエストを読み取ります。ファイルが存在しない場合、リクエストは標準入力から読み取られます。 .RS 4
.\}
.nf
\fB{\-v} {\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
パスフレーズをインポートし、\fBalias\fRで識別される新規\fBKeyStore\&.SecretKeyEntry\fRに格納します。パスフレーズは、標準入力ストリームを介して提供できます。または、ユーザーにそのプロンプトが表示されます。\fBkeypass\fRは、インポートされるパスフレーズの保護に使用されるパスワードです。パスワードを指定しなかった場合は、パスワードの入力を求められます。このとき、[Return]キーを押すと、\fBkeystore\fRのパスワードと同じパスワードが鍵のパスワードに設定されます。\fBkeypass\fRは、6文字以上にする必要があります。
.RE .RE
.PP .PP
\-certreq \-importkeystore
.RS 4 .RS 4
\fB{\-alias alias} {\-dname dname} {\-sigalg sigalg} {\-file certreq_file} [\-keypass keypass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption}\fR
.sp .sp
PKCS#10形式を使用して証明書署名リクエスト(CSR)を生成します。 .if n \{\
.sp .RS 4
CSRは、証明書発行局(CA)に送信することを目的としたものです。CAは、証明書要求者を(通常はオフラインで)認証し、証明書または証明書チェーンを送り返します。この証明書または証明書チェーンは、キーストア内の既存の証明書チェーン(最初は1つの自己署名証明書から構成される)に置き換えて使用します。 .\}
.nf
\fB{\-srcstoretype \fR\fB\fIsrcstoretype\fR\fR\fB} {\-deststoretype \fR\fB\fIdeststoretype\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp .sp
aliasに関連付けられた秘密鍵は、PKCS#10証明書リクエストを作成するのに使用されます。秘密鍵にアクセスするには、正しいパスワードを指定する必要があります。コマンド行で\fBkeypass\fRを指定しておらず、秘密鍵のパスワードがキーストアのパスワードと異なる場合は、秘密鍵のパスワードの入力を求められます。\fBdname\fRが指定されている場合は、それがCSRで主体として使用されます。それ以外の場合は、別名に関連付けられたX\&.500識別名が使用されます。 .if n \{\
.RS 4
.\}
.nf
\fB[\-srcstorepass \fR\fB\fIsrcstorepass\fR\fR\fB] [\-deststorepass \fR\fB\fIdeststorepass\fR\fR\fB] {\-srcprotected}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-destprotected} \fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-srcalias \fR\fB\fIsrcalias\fR\fR\fB {\-destalias \fR\fB\fIdestalias\fR\fR\fB} [\-srckeypass \fR\fB\fIsrckeypass\fR\fR\fB]} \fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB[\-destkeypass \fR\fB\fIdestkeypass\fR\fR\fB] {\-noprompt}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-srcProviderName \fR\fB\fIsrc_provider_name\fR\fR\fB} {\-destProviderName \fR\fB\fIdest_provider_name\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}} {\-v}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
ソース・キーストアからターゲット・キーストアへ、単一のエントリまたはすべてのエントリをインポートします。
.sp
\fB\-srcalias\fRオプションが指定された場合、このコマンドは、その別名で特定される単一のエントリをターゲット・キーストアにインポートします。\fBdestalias\fR経由でターゲット別名が指定されなかった場合、\fBsrcalias\fRがターゲット別名として使用されます。ソースのエントリがパスワードで保護されていた場合、\fBsrckeypass\fRを使用してそのエントリが回復されます。\fIsrckeypass\fRが指定されなかった場合、\fBkeytool\fRコマンドは\fBsrcstorepass\fRを使用してそのエントリを回復しようとします。\fBsrcstorepass\fRが指定されなかったか正しくなかった場合、ユーザーはパスワードの入力を求められます。ターゲットのエントリは\fBdestkeypass\fRによって保護されます。\fBdestkeypass\fRが指定されなかった場合、ターゲット・エントリはソース・エントリのパスワードによって保護されます。たとえば、ほとんどのサード・パーティ・ツールでは、PKCS #12キーストアで\fBstorepass\fRと\fBkeypass\fRが同じである必要があります。これらのツールのPKCS #12キーストアを作成する場合は、常に\fB\-destkeypass\fRと\fB\-deststorepass\fRが同じになるように指定します。
.sp
\fB\-srcalias\fRオプションが指定されなかった場合、ソース・キーストア内のすべてのエントリがターゲット・キーストア内にインポートされます。各ターゲット・エントリは対応するソース・エントリの別名の下に格納されます。ソースのエントリがパスワードで保護されていた場合、\fBsrcstorepass\fRを使用してそのエントリが回復されます。\fBsrcstorepass\fRが指定されなかったか正しくなかった場合、ユーザーはパスワードの入力を求められます。ソース・キーストア内のあるエントリ・タイプがターゲット・キーストアでサポートされていない場合や、あるエントリをターゲット・キーストアに格納する際にエラーが発生した場合、ユーザーはそのエントリをスキップして処理を続行するか、または中止するかの選択を求められます。ターゲット・エントリはソース・エントリのパスワードによって保護されます。
.sp
ターゲット別名がターゲット・キーストア内にすでに存在していた場合、ユーザーは、そのエントリを上書きするか、あるいは異なる別名の下で新しいエントリを作成するかの選択を求められます。
.sp
\fB\-noprompt\fRオプションを指定した場合、ユーザーは新しいターゲット別名の入力を求められません。既存のエントリがそのターゲット別名で上書きされます。インポートできないエントリはスキップされ、警告が出力されます。
.RE
.PP
\-printcertreq
.RS 4
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-file \fR\fB\fIfile\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
PKCS#10形式の証明書リクエストの内容を出力します。このリクエストは、\fBkeytool\fR
\fB\-certreq\fRコマンドで生成できます。このコマンドは、ファイルからリクエストを読み取ります。ファイルが存在しない場合、リクエストは標準入力から読み取られます。
.RE
.PP
\-certreq
.RS 4
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-alias \fR\fB\fIalias\fR\fR\fB} {\-dname \fR\fB\fIdname\fR\fR\fB} {\-sigalg \fR\fB\fIsigalg\fR\fR\fB} {\-file \fR\fB\fIcertreq_file\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB[\-keypass \fR\fB\fIkeypass\fR\fR\fB] {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB[\-storepass \fR\fB\fIstorepass\fR\fR\fB] {\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-v} {\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
PKCS#10形式を使用して証明書署名リクエスト(CSR)を生成します。
.sp
CSRは、証明書発行局(CA)に送信することを目的としたものです。CAは、証明書要求者を(通常はオフラインで)認証し、証明書または証明書チェーンを送り返します。この証明書または証明書チェーンは、キーストア内の既存の証明書チェーン(最初は1つの自己署名証明書から構成される)に置き換えて使用します。
.sp
aliasに関連付けられた秘密鍵は、PKCS#10証明書リクエストを作成するのに使用されます。秘密鍵にアクセスするには、正しいパスワードを指定する必要があります。コマンド行で\fBkeypass\fRを指定しておらず、秘密鍵のパスワードがキーストアのパスワードと異なる場合は、秘密鍵のパスワードの入力を求められます。\fBdname\fRが指定されている場合は、それがCSRで主体として使用されます。それ以外の場合は、別名に関連付けられたX\&.500識別名が使用されます。
.sp .sp
\fBsigalg\fR値には、CSRに署名を付けるときに使用するアルゴリズムを指定します。 \fBsigalg\fR値には、CSRに署名を付けるときに使用するアルゴリズムを指定します。
.sp .sp
...@@ -839,8 +1221,46 @@ CA ...@@ -839,8 +1221,46 @@ CA
.PP .PP
\-exportcert \-exportcert
.RS 4 .RS 4
\fB{\-alias alias} {\-file cert_file} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-rfc} {\-v} {\-protected} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-alias \fR\fB\fIalias\fR\fR\fB} {\-file \fR\fB\fIcert_file\fR\fR\fB} {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB[\-storepass \fR\fB\fIstorepass\fR\fR\fB] {\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-rfc} {\-v} {\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
\fIalias\fRに関連付けられた証明書をキーストアから読み込み、ファイルcert_fileに格納します。ファイルが指定されていない場合は、\fBstdout\fRに証明書が出力されます。 \fIalias\fRに関連付けられた証明書をキーストアから読み込み、ファイルcert_fileに格納します。ファイルが指定されていない場合は、\fBstdout\fRに証明書が出力されます。
.sp .sp
デフォルトでは、証明書はバイナリ符号化で出力されます。\fB\-rfc\fRオプションが指定されている場合、出力可能符号化方式の出力はインターネットRFC 1421証明書符号化規格で定義されます。 デフォルトでは、証明書はバイナリ符号化で出力されます。\fB\-rfc\fRオプションが指定されている場合、出力可能符号化方式の出力はインターネットRFC 1421証明書符号化規格で定義されます。
...@@ -852,8 +1272,46 @@ CA ...@@ -852,8 +1272,46 @@ CA
.PP .PP
\-list \-list
.RS 4 .RS 4
\fB{\-alias alias} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v | \-rfc} {\-protected} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-alias \fR\fB\fIalias\fR\fR\fB} {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-v | \-rfc} {\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
\fBalias\fRで特定されるキーストア・エントリの内容を\fBstdout\fRに出力します。\fBalias\fRが指定されていない場合は、キーストア全体の内容が表示されます。 \fBalias\fRで特定されるキーストア・エントリの内容を\fBstdout\fRに出力します。\fBalias\fRが指定されていない場合は、キーストア全体の内容が表示されます。
.sp .sp
このコマンドは、デフォルトでは証明書のSHA1フィンガープリントを表示します。 このコマンドは、デフォルトでは証明書のSHA1フィンガープリントを表示します。
...@@ -864,8 +1322,26 @@ CA ...@@ -864,8 +1322,26 @@ CA
.PP .PP
\-printcert \-printcert
.RS 4 .RS 4
\fB{\-file cert_file | \-sslserver host[:port]} {\-jarfile JAR_file {\-rfc} {\-v} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-file \fR\fB\fIcert_file\fR\fR\fB | \-sslserver \fR\fB\fIhost\fR\fR\fB[:\fR\fB\fIport\fR\fR\fB]} {\-jarfile \fR\fB\fIJAR_file\fR\fR\fB {\-rfc} {\-v}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
ファイルcert_file、host:portにあるSSLサーバー、または署名付きJARファイル\fBJAR_file\fR(\fB\-jarfile\fRオプションを指定)から証明書を読み込み、人間が読むことのできる形式で証明書の内容を表示します。ポートが指定されていない場合は、標準のHTTPSポート443が想定されます。\fB\-sslserver\fRおよび\-fileオプションを同時に指定することはできません。それ以外の場合、エラーが報告されます。オプションが指定されていない場合は、\fBstdin\fRから証明書を読み込みます。 ファイルcert_file、host:portにあるSSLサーバー、または署名付きJARファイル\fBJAR_file\fR(\fB\-jarfile\fRオプションを指定)から証明書を読み込み、人間が読むことのできる形式で証明書の内容を表示します。ポートが指定されていない場合は、標準のHTTPSポート443が想定されます。\fB\-sslserver\fRおよび\-fileオプションを同時に指定することはできません。それ以外の場合、エラーが報告されます。オプションが指定されていない場合は、\fBstdin\fRから証明書を読み込みます。
.sp .sp
\fB\-rfc\fRが指定されている場合、\fBkeytool\fRコマンドは、インターネットRFC 1421証明書符号化標準で定義されているように、PEMモードで証明書を出力します。インターネットRFC 1421証明書符号化規格を参照してください。 \fB\-rfc\fRが指定されている場合、\fBkeytool\fRコマンドは、インターネットRFC 1421証明書符号化標準で定義されているように、PEMモードで証明書を出力します。インターネットRFC 1421証明書符号化規格を参照してください。
...@@ -881,8 +1357,16 @@ SSL ...@@ -881,8 +1357,16 @@ SSL
.PP .PP
\-printcrl \-printcrl
.RS 4 .RS 4
\fB\-file crl_ {\-v}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB\-file \fR\fB\fIcrl_\fR\fR\fB {\-v}\fR
.fi
.if n \{\
.RE
.\}
ファイル\fBcrl_\fRから証明書失効リスト(CRL)を読み込みます。CRLは、発行したCAによって失効されたデジタル証明書のリストです。CAは、\fBcrl_\fRを生成します。 ファイル\fBcrl_\fRから証明書失効リスト(CRL)を読み込みます。CRLは、発行したCAによって失効されたデジタル証明書のリストです。CAは、\fBcrl_\fRを生成します。
.sp .sp
\fB注意:\fR \fB注意:\fR
...@@ -891,15 +1375,91 @@ SSL ...@@ -891,15 +1375,91 @@ SSL
.PP .PP
\-storepasswd \-storepasswd
.RS 4 .RS 4
\fB[\-new new_storepass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB[\-new \fR\fB\fInew_storepass\fR\fR\fB] {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB[\-storepass \fR\fB\fIstorepass\fR\fR\fB] {\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-v} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
キーストアの内容の整合性を保護するために使用するパスワードを変更します。\fBnew_storepass\fRには、新しいパスワードを指定します。new_storepassは、6文字以上である必要があります。 キーストアの内容の整合性を保護するために使用するパスワードを変更します。\fBnew_storepass\fRには、新しいパスワードを指定します。new_storepassは、6文字以上である必要があります。
.RE .RE
.PP .PP
\-keypasswd \-keypasswd
.RS 4 .RS 4
\fB{\-alias alias} [\-keypass old_keypass] [\-new new_keypass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-alias \fR\fB\fIalias\fR\fR\fB} [\-keypass \fR\fB\fIold_keypass\fR\fR\fB] [\-new \fR\fB\fInew_keypass\fR\fR\fB] {\-storetype \fR\fB\fIstoretype\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB] {\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}} {\-v}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
\fBalias\fRによって特定される非公開/秘密鍵を保護するためのパスワードを、\fBold_keypass\fRから\fBnew_keypass\fRに変更します。new_keypassは、6文字以上である必要があります。 \fBalias\fRによって特定される非公開/秘密鍵を保護するためのパスワードを、\fBold_keypass\fRから\fBnew_keypass\fRに変更します。new_keypassは、6文字以上である必要があります。
.sp .sp
コマンド行で\fB\-keypass\fRオプションを指定しておらず、鍵のパスワードがキーストアのパスワードと異なる場合は、鍵のパスワードの入力を求められます。 コマンド行で\fB\-keypass\fRオプションを指定しておらず、鍵のパスワードがキーストアのパスワードと異なる場合は、鍵のパスワードの入力を求められます。
...@@ -909,15 +1469,91 @@ SSL ...@@ -909,15 +1469,91 @@ SSL
.PP .PP
\-delete \-delete
.RS 4 .RS 4
\fB[\-alias alias] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB[\-alias \fR\fB\fIalias\fR\fR\fB] {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerName \fR\fB\fIprovider_name\fR\fR\fB} \fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-v} {\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
\fBalias\fRによって特定されるエントリをキーストアから削除します。コマンド行で別名を指定しなかった場合は、別名の入力を求められます。 \fBalias\fRによって特定されるエントリをキーストアから削除します。コマンド行で別名を指定しなかった場合は、別名の入力を求められます。
.RE .RE
.PP .PP
\-changealias \-changealias
.RS 4 .RS 4
\fB{\-alias alias} [\-destalias destalias] [\-keypass keypass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-alias \fR\fB\fIalias\fR\fR\fB} [\-destalias \fR\fB\fIdestalias\fR\fR\fB] [\-keypass \fR\fB\fIkeypass\fR\fR\fB] {\-storetype \fR\fB\fIstoretype\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB] {\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}} {\-v}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
指定された\fBalias\fRから新しい別名\fBdestalias\fRへ、既存のキーストア・エントリを移動します。ターゲット別名を指定しなかった場合、ターゲット別名の入力を求められます。元のエントリがエントリ・パスワードで保護されていた場合、\fB\-keypass\fRオプションでそのパスワードを指定できます。鍵パスワードが指定されなかった場合、\fBstorepass\fR(指定された場合)がまず試みられます。その試みが失敗すると、ユーザーはパスワードの入力を求められます。 指定された\fBalias\fRから新しい別名\fBdestalias\fRへ、既存のキーストア・エントリを移動します。ターゲット別名を指定しなかった場合、ターゲット別名の入力を求められます。元のエントリがエントリ・パスワードで保護されていた場合、\fB\-keypass\fRオプションでそのパスワードを指定できます。鍵パスワードが指定されなかった場合、\fBstorepass\fR(指定された場合)がまず試みられます。その試みが失敗すると、ユーザーはパスワードの入力を求められます。
.RE .RE
.PP .PP
...@@ -971,7 +1607,7 @@ SSL ...@@ -971,7 +1607,7 @@ SSL
以降では、オプションを指定しないで\fB\-genkeypair\fRコマンドを実行したものとして例を示します。情報の入力を求められた場合は、最初に示した\fB\-genkeypair\fRコマンドの値を入力したものとします。たとえば識別名には\fBcn=Mark Jones\fR、\fBou=Java\fR、\fBo=Oracle\fR、\fBc=US\fRと指定します。 以降では、オプションを指定しないで\fB\-genkeypair\fRコマンドを実行したものとして例を示します。情報の入力を求められた場合は、最初に示した\fB\-genkeypair\fRコマンドの値を入力したものとします。たとえば識別名には\fBcn=Mark Jones\fR、\fBou=Java\fR、\fBo=Oracle\fR、\fBc=US\fRと指定します。
.SS "CAからの署名付き証明書のリクエスト" .SS "CAからの署名付き証明書のリクエスト"
.PP .PP
自己署名証明書を作成する鍵のペアの生成。証明書に証明書発行局(CA)の署名が付いていれば、他のユーザーから証明書が信頼される可能性も高くなります。CAの署名を取得するには、まず、証明書署名リクエスト(CSR)を生成します。たとえば、次のようにします。 自己署名証明書を作成する鍵のペアの生成。証明書に認証局(CA)の署名が付いていれば、他のユーザーから証明書が信頼される可能性も高くなります。CAの署名を取得するには、まず、証明書署名リクエスト(CSR)を生成します。たとえば、次のようにします。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
...@@ -1015,7 +1651,7 @@ CA ...@@ -1015,7 +1651,7 @@ CA
.PP .PP
\fBcacerts\fRキーストア・ファイルは、いくつかのVeriSignルートCA証明書を含んだ状態で出荷されているので、VeriSignの証明書を、信頼できる証明書としてキーストア内にインポートする必要がない場合があります。ただし、他のCAに対して署名付き証明書をリクエストしていて、このCAの公開鍵を認証する証明書が、\fBcacerts\fRにまだ追加されていない場合は、該当するCAからの証明書を、「信頼できる証明書」としてインポートする必要があります。 \fBcacerts\fRキーストア・ファイルは、いくつかのVeriSignルートCA証明書を含んだ状態で出荷されているので、VeriSignの証明書を、信頼できる証明書としてキーストア内にインポートする必要がない場合があります。ただし、他のCAに対して署名付き証明書をリクエストしていて、このCAの公開鍵を認証する証明書が、\fBcacerts\fRにまだ追加されていない場合は、該当するCAからの証明書を、「信頼できる証明書」としてインポートする必要があります。
.PP .PP
通常、CAからの証明書は、自己署名証明書、または他のCAによって署名された証明書です(後者の場合は、該当する他のCAの公開鍵を認証する証明書が必要)。ABC, Inc\&.,がCAで、ABCから自己署名証明書であるA\fBBCCA\&.cer\fRという名前のファイルを取得したとします(この証明書はCAの公開鍵を認証します)。信頼できる証明書として証明書をインポートするときは、証明書が有効であることを確認する必要があります。まず、\fBkeytool \-printcert\fRコマンドまたは\fB\-noprompt\fRオプションなしの\fBkeytool \-importcert\fRコマンドでそれを表示し、表示された証明書のフィンガープリントが期待されるものと一致するかどうかを確認します。証明書を送信した人物に連絡し、この人物が提示した(またはセキュアな公開鍵のリポジトリによって提示される)フィンガープリントと、上のコマンドで表示されたフィンガープリントとを比較します。フィンガープリントが一致すれば、送信途中で他の何者か(攻撃者など)による証明書のすり替えが行われていないことを確認できます。送信途中でこの種の攻撃が行われていた場合、チェックを行わずに証明書をインポートすると、攻撃者によって署名されたすべてのものを信頼することになります。 通常、CAからの証明書は、自己署名証明書、または他のCAによって署名された証明書です(後者の場合は、該当する他のCAの公開鍵を認証する証明書が必要)。ABC, Inc\&.,がCAで、ABCから自己署名証明書であるA\fBBCCA\&.cer\fRという名前のファイルを取得したとします(この証明書はCAの公開鍵を認証します)。信頼できる証明書として証明書をインポートするときは、証明書が有効であることを確認する必要があります。まず、証明書の内容を表示し、\fBkeytool \-printcert\fRコマンドを使用するか、または\fB\-noprompt\fRオプションを指定しないで\fBkeytool \-importcert\fRコマンドを使用し、表示された証明書のフィンガープリントが、期待されるフィンガープリントと一致するかどうかを確認します。証明書を送信した人物に連絡し、この人物が提示した(または安全な公開鍵のリポジトリによって提示される)フィンガープリントと、上のコマンドで表示されたフィンガープリントとを比較します。フィンガープリントが一致すれば、送信途中で他の何者か(攻撃者など)による証明書のすり替えが行われていないことを確認できます。送信途中でこの種の攻撃が行われていた場合、チェックを行わずに証明書をインポートすると、攻撃者によって署名されたすべてのものを信頼することになります。
.PP .PP
証明書が有効であると信頼する場合は、次のコマンドでキーストアに追加できます。 証明書が有効であると信頼する場合は、次のコマンドでキーストアに追加できます。
.sp .sp
...@@ -1182,7 +1818,7 @@ ABCCA\&.cer ...@@ -1182,7 +1818,7 @@ ABCCA\&.cer
.if n \{\ .if n \{\
.RE .RE
.\} .\}
パスワードが、\fBdukekeypasswd\fRから\fBnewpass\fRに変更されます。テストを目的とする場合、または安全であることがわかっているシステムで実行する場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。必要なパスワードのオプションをコマンド行で指定しなかった場合は、パスワードの入力を求められます。 パスワードが、\fBdukekeypasswd\fRから\fBnewpass\fRに変更されます。テスト目的の場合、またはセキュアなシステムを使用している場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。必要なパスワードのオプションをコマンド行で指定しなかった場合は、パスワードの入力を求められます。
.RE .RE
.PP .PP
キーストアの実装 キーストアの実装
...@@ -1260,9 +1896,9 @@ Java ...@@ -1260,9 +1896,9 @@ Java
.sp .sp
\fBエンティティ\fR: エンティティは、人、組織、プログラム、コンピュータ、企業、銀行など、一定の度合いで信頼の対象となる様々なものを指します。 \fBエンティティ\fR: エンティティは、人、組織、プログラム、コンピュータ、企業、銀行など、一定の度合いで信頼の対象となる様々なものを指します。
.sp .sp
公開鍵暗号化では、ユーザーの公開鍵にアクセスする必要があります。大規模なネットワーク環境では、互いに通信しているエンティティ間で以前の関係が引続き確立されていると仮定したり、使用されているすべての公開鍵を収めた信頼できるリポジトリが存在すると仮定したりすることは不可能です。このような公開鍵の配布に関する問題を解決するために証明書が考案されました。現在では、証明書発行局(CA)が信頼できる第三者として機能します。CAは、他のエンティティの証明書に署名する(発行する)行為を、信頼して任されているエンティティ(企業など)です。CAは法律上の契約に拘束されるので、有効かつ信頼できる証明書のみを作成するものとして扱われます。VeriSign、Thawte、Entrustをはじめ、多くの公的な証明書発行局が存在します。 公開鍵暗号化では、ユーザーの公開鍵にアクセスする必要があります。大規模なネットワーク環境では、互いに通信しているエンティティ間で以前の関係が引続き確立されていると仮定したり、使用されているすべての公開鍵を収めた信頼できるリポジトリが存在すると仮定したりすることは不可能です。このような公開鍵の配布に関する問題を解決するために証明書が考案されました。現在では、認証局(CA)が信頼できる第三者として機能します。CAは、他のエンティティの証明書に署名する(発行する)行為を、信頼して任されているエンティティ(企業など)です。CAは法律上の契約に拘束されるので、有効かつ信頼できる証明書のみを作成するものとして扱われます。VeriSign、Thawte、Entrustをはじめ、多くの公的な認証局が存在します。
.sp .sp
Microsoftの認証サーバー、EntrustのCA製品などを所属組織内で利用すれば、独自の証明書発行局を運営することも可能です。\fBkeytool\fRコマンドを使用すると、証明書の表示、インポートおよびエクスポートを行うことができます。また、自己署名証明書を生成することもできます。 Microsoftの認証サーバー、EntrustのCA製品などを所属組織内で利用すれば、独自の認証局を運営することも可能です。\fBkeytool\fRコマンドを使用すると、証明書の表示、インポートおよびエクスポートを行うことができます。また、自己署名証明書を生成することもできます。
.sp .sp
現在、\fBkeytool\fRコマンドはX\&.509証明書を対象にしています。 現在、\fBkeytool\fRコマンドはX\&.509証明書を対象にしています。
.RE .RE
...@@ -1312,7 +1948,7 @@ X\&.509 Version 3 ...@@ -1312,7 +1948,7 @@ X\&.509 Version 3
.sp .sp
鍵を初めて作成すると、自己署名証明書という1つの要素のみを含むチェーンが開始されます。コマンドの\fB\-genkeypair\fRを参照してください。自己署名証明書は発行者(署名者)が主体と同じです。主体は、その公開鍵が証明書によって認証されるエンティティです。\fB\-genkeypair\fRコマンドを呼び出して新しい公開鍵と秘密鍵のペアを作成すると、公開鍵は常に自己署名証明書でラップされます。 鍵を初めて作成すると、自己署名証明書という1つの要素のみを含むチェーンが開始されます。コマンドの\fB\-genkeypair\fRを参照してください。自己署名証明書は発行者(署名者)が主体と同じです。主体は、その公開鍵が証明書によって認証されるエンティティです。\fB\-genkeypair\fRコマンドを呼び出して新しい公開鍵と秘密鍵のペアを作成すると、公開鍵は常に自己署名証明書でラップされます。
.sp .sp
この後、証明書署名リクエスト(CSR)が\fB\-certreq\fRコマンドで生成されて、CSRが証明書発行局(CA)に送信されると、CAからのレスポンスが\fB\-importcert\fRでインポートされ、元の自己署名証明書は証明書チェーンによって置き換えられます。\fBの\fR\-certreq\fBおよび\fR\-importcertコマンドオプションを参照してください。チェーンの最後にあるのは、Subjectの公開鍵を認証したCAが発行した証明書(応答)です。チェーン内のその前の証明書は、CAの公開鍵を認証する証明書です。 この後、証明書署名リクエスト(CSR)が\fB\-certreq\fRコマンドで生成されて、CSRが認証局(CA)に送信されると、CAからのレスポンスが\fB\-importcert\fRでインポートされ、元の自己署名証明書は証明書チェーンによって置き換えられます。\fBの\fR\-certreq\fBおよび\fR\-importcertコマンドオプションを参照してください。チェーンの最後にあるのは、Subjectの公開鍵を認証したCAが発行した証明書(応答)です。チェーン内のその前の証明書は、CAの公開鍵を認証する証明書です。
.sp .sp
CAの公開鍵を認証する証明書は、多くの場合、自己署名証明書(つまりCAが自身の公開鍵を認証した証明書)であり、これはチェーンの最初の証明書になります。場合によっては、CAが証明書のチェーンを返すこともあります。この場合、チェーン内の最後の証明書(CAによって署名され、鍵エントリの公開鍵を認証する証明書)に変わりはありませんが、チェーン内のその前の証明書は、CSRの送信先のCAとは別のCAによって署名され、CSRの送信先のCAの公開鍵を認証する証明書になります。チェーン内のその前の証明書は、次のCAの鍵を認証する証明書になります。以下同様に、自己署名された「ルート」証明書に達するまでチェーンが続きます。したがって、チェーン内の(最初の証明書以後の)各証明書では、チェーン内の次の証明書の署名者の公開鍵が認証されていることになります。 CAの公開鍵を認証する証明書は、多くの場合、自己署名証明書(つまりCAが自身の公開鍵を認証した証明書)であり、これはチェーンの最初の証明書になります。場合によっては、CAが証明書のチェーンを返すこともあります。この場合、チェーン内の最後の証明書(CAによって署名され、鍵エントリの公開鍵を認証する証明書)に変わりはありませんが、チェーン内のその前の証明書は、CSRの送信先のCAとは別のCAによって署名され、CSRの送信先のCAの公開鍵を認証する証明書になります。チェーン内のその前の証明書は、次のCAの鍵を認証する証明書になります。以下同様に、自己署名された「ルート」証明書に達するまでチェーンが続きます。したがって、チェーン内の(最初の証明書以後の)各証明書では、チェーン内の次の証明書の署名者の公開鍵が認証されていることになります。
.sp .sp
...@@ -1399,7 +2035,7 @@ X\&.500 ...@@ -1399,7 +2035,7 @@ X\&.500
.if n \{\ .if n \{\
.RE .RE
.\} .\}
イタリックの項目は、実際に指定する値を表します。短縮形のキーワードの意味は、次のとおりです。 イタリックの項目は、実際に指定する値を表します。短縮形のキーワードの意味は、次のとおりです。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
...@@ -1527,7 +2163,7 @@ Oracle Solaris ...@@ -1527,7 +2163,7 @@ Oracle Solaris
証明書をインポートする前に\fB\-printcert\fRコマンドを実行する必要はありません。キーストア内の信頼できる証明書のリストに証明書を追加する前に、\fB\-importcert\fRコマンドによって証明書の情報が表示され、確認を求めるメッセージが表示されるためです。ユーザーはインポート操作を停止できます。ただし、これを実行できるのは、\fB\-noprompt\fRオプションを指定せずに\fB\-importcert\fRコマンドを呼び出す場合のみです。\fB\-noprompt\fRオプションが指定されている場合、ユーザーとの対話は行われません。 証明書をインポートする前に\fB\-printcert\fRコマンドを実行する必要はありません。キーストア内の信頼できる証明書のリストに証明書を追加する前に、\fB\-importcert\fRコマンドによって証明書の情報が表示され、確認を求めるメッセージが表示されるためです。ユーザーはインポート操作を停止できます。ただし、これを実行できるのは、\fB\-noprompt\fRオプションを指定せずに\fB\-importcert\fRコマンドを呼び出す場合のみです。\fB\-noprompt\fRオプションが指定されている場合、ユーザーとの対話は行われません。
.SS "パスワード警告" .SS "パスワード警告"
.PP .PP
キーストアに対する操作を行うほとんどのコマンドでは、ストアのパスワードが必要です。また、一部のコマンドでは、非公開/秘密鍵のパスワードが必要になることがあります。パスワードはコマンド行で指定できます(\fB\-storepass\fRオプションと\fB\-keypass\fRオプションを使用)。ただし、テストを目的とする場合、または安全であることがわかっているシステムで実行する場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。必要なパスワードのオプションをコマンド行で指定しなかった場合は、パスワードの入力を求められます。 キーストアに対する操作を行うほとんどのコマンドでは、ストアのパスワードが必要です。また、一部のコマンドでは、非公開/秘密鍵のパスワードが必要になることがあります。パスワードはコマンド行で指定できます(\fB\-storepass\fRオプションと\fB\-keypass\fRオプションを使用)。ただし、テスト目的の場合、またはセキュアなシステムを使用している場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。必要なパスワードのオプションをコマンド行で指定しなかった場合は、パスワードの入力を求められます。
.SS "証明書の準拠に関する警告" .SS "証明書の準拠に関する警告"
.PP .PP
インターネット標準RFC 5280では、X\&.509証明書の準拠に関するプロファイルが定義されており、証明書のフィールドおよびエクステンションに有効な値および値の組合せが記載されています。標準については、 インターネット標準RFC 5280では、X\&.509証明書の準拠に関するプロファイルが定義されており、証明書のフィールドおよびエクステンションに有効な値および値の組合せが記載されています。標準については、
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: 国際化ツール .\" SectDesc: 国際化ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "native2ascii" "1" "2013年11月21日" "JDK 8" "国際化ツール" .TH "native2ascii" "1" "2013年11月21日" "JDK 8" "国際化ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Java IDLおよびRMI-IIOPツール .\" SectDesc: Java IDLおよびRMI-IIOPツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "orbd" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール" .TH "orbd" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール"
...@@ -117,7 +118,7 @@ ORBD ...@@ -117,7 +118,7 @@ ORBD
.PP .PP
\-serverPollingTime \fImilliseconds\fR \-serverPollingTime \fImilliseconds\fR
.RS 4 .RS 4
\fBservertool\fRを使用して登録された永続サーバーのヘルス状態をORBDがチェックする間隔を指定します。デフォルト値は1000ミリ秒です。\fBmilliseconds\fRに指定する値は、有効な正の整数にする必要があります。 \fBservertool\fRを使用して登録された永続サーバーが正常に動作していることをORBDが確認する間隔を指定します。デフォルト値は1000ミリ秒です。\fBmilliseconds\fRに指定する値は、有効な正の整数にする必要があります。
.RE .RE
.PP .PP
\-serverStartupDelay milliseconds \-serverStartupDelay milliseconds
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Javaデプロイメント・ツール .\" SectDesc: Javaデプロイメント・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "pack200" "1" "2013年11月21日" "JDK 8" "Javaデプロイメント・ツール" .TH "pack200" "1" "2013年11月21日" "JDK 8" "Javaデプロイメント・ツール"
...@@ -160,7 +161,7 @@ JAR ...@@ -160,7 +161,7 @@ JAR
\-\-segment\-limit=\fIvalue\fR \-\-segment\-limit=\fIvalue\fR
.RS 4 .RS 4
この値は、各アーカイブ・セグメントの予想ターゲット・サイズ\fIN\fR この値は、各アーカイブ・セグメントの予想ターゲット・サイズ\fIN\fR
(バイト単位)です。単一の入力ファイルの必要サイズが\fIN\fRバイトを超えると、独立したセグメントが割り当てられます。特殊なケースとして、値が\fB\-1\fRの場合は、すべての入力ファイルを含む大きな単一のセグメントが生成され、値が0の場合は、クラスごとにセグメントが1つずつ生成されます。アーカイブ・セグメントが大きくなると、断片化が少なくなり圧縮率が高くなりますが、その処理には多くのメモリーが必要です。 (バイト単位)です。単一の入力ファイルの必要サイズが\fIN\fRバイトを超えると、固有のアーカイブ・セグメントが提供されます。特殊なケースとして、値が\fB\-1\fRの場合は、すべての入力ファイルを含む大きな単一のセグメントが生成され、値が0の場合は、クラスごとにセグメントが1つずつ生成されます。アーカイブ・セグメントが大きくなると、断片化が少なくなり圧縮率が高くなりますが、その処理には多くのメモリーが必要です。
.sp .sp
各セグメントのサイズは、セグメントに変換されるそれぞれの入力ファイルのサイズのほか、その名前と他の送信されるプロパティのサイズを計算して推測されます。 各セグメントのサイズは、セグメントに変換されるそれぞれの入力ファイルのサイズのほか、その名前と他の送信されるプロパティのサイズを計算して推測されます。
.sp .sp
......
...@@ -23,14 +23,15 @@ ...@@ -23,14 +23,15 @@
.\" .\"
.\" Title: policytool .\" Title: policytool
.\" Language: Japanese .\" Language: Japanese
.\" Date: 2013年11月21 .\" Date: 2015年3月3
.\" SectDesc: セキュリティ・ツール .\" SectDesc: セキュリティ・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "policytool" "1" "2013年11月21日" "JDK 8" "セキュリティ・ツール" .TH "policytool" "1" "2015年3月3日" "JDK 8" "セキュリティ・ツール"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
...@@ -95,7 +96,7 @@ policytool \- ...@@ -95,7 +96,7 @@ policytool \-
.RS 4 .RS 4
.\} .\}
.nf .nf
\fBpolicytool\-file mypolicyfile\fR \fBpolicytool \-file \fR\fB\fImypolicyfile\fR\fR
.fi .fi
.if n \{\ .if n \{\
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Remote Method Invocation (RMI)ツール .\" SectDesc: Remote Method Invocation (RMI)ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "rmic" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)" .TH "rmic" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)"
...@@ -110,8 +111,8 @@ Java Remote Method Protocol (JRMP) ...@@ -110,8 +111,8 @@ Java Remote Method Protocol (JRMP)
.PP .PP
\-classpath path \-classpath path
.RS 4 .RS 4
\fBrmic\fRコマンドがクラスを探すためのパスを指定します。このオプションは、デフォルトや\fBCLASSPATH\fR環境変数設定をオーバーライドします。ディレクトリはコロンで分割します。パスの一般的な形式は\fB\&.;<your_path>\fRです。例: \fBrmic\fRコマンドがクラスを探すためのパスを指定します。このオプションは、デフォルトや\fBCLASSPATH\fR環境変数設定をオーバーライドします。ディレクトリはコロンで分割します。パスの一般的な形式は\fB\&.:<your_path>\fRです。例:
\fB\&.;/usr/local/java/classes\fR \fB\&.:/usr/local/java/classes\fR
.RE .RE
.PP .PP
\-d \fIdirectory\fR \-d \fIdirectory\fR
...@@ -350,7 +351,7 @@ java(1) ...@@ -350,7 +351,7 @@ java(1)
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
Setting the Class Path クラス・パスの設定
.RE .RE
.br .br
'pl 8.5i 'pl 8.5i
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Remote Method Invocation (RMI)ツール .\" SectDesc: Remote Method Invocation (RMI)ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "rmid" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)" .TH "rmid" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)"
...@@ -103,9 +104,7 @@ rmid \- ...@@ -103,9 +104,7 @@ rmid \-
.\} .\}
.SH "必要に応じてRMIDを開始" .SH "必要に応じてRMIDを開始"
.PP .PP
\fBrmid\fRをコマンド行から開始するには、\fBinetd\fR \fBrmid\fRをコマンド行から開始するには、\fBinetd\fR(Oracle Solarisの場合)、または\fBxinetd\fR(Linuxの場合)を構成して\fBrmid\fRを必要に応じて開始する方法もあります。
(Oracle Solarisの場合)、または\fBxinetd\fR
(Linuxの場合)を構成して\fBrmid\fRを必要に応じて開始する方法もあります。
.PP .PP
RMIDを開始すると、\fBSystem\&.inheritedChannel\fRメソッドを呼び出して、継承されたチャンネル(\fBinetd\fR/\fBxinetd\fRから継承)を取得しようとします。継承されたチャンネルがnullであるか、\fBjava\&.nio\&.channels\&.ServerSocketChannel\fRのインスタンスでなかった場合、RMIDはそのチャンネルは\fBinetd\fR/\fBxinetd\fRによって起動されたものではないと判断し、前述のように起動します。 RMIDを開始すると、\fBSystem\&.inheritedChannel\fRメソッドを呼び出して、継承されたチャンネル(\fBinetd\fR/\fBxinetd\fRから継承)を取得しようとします。継承されたチャンネルがnullであるか、\fBjava\&.nio\&.channels\&.ServerSocketChannel\fRのインスタンスでなかった場合、RMIDはそのチャンネルは\fBinetd\fR/\fBxinetd\fRによって起動されたものではないと判断し、前述のように起動します。
.PP .PP
...@@ -368,7 +367,7 @@ java(1) ...@@ -368,7 +367,7 @@ java(1)
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
Setting the Class Path クラス・パスの設定
.RE .RE
.br .br
'pl 8.5i 'pl 8.5i
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Remote Method Invocation (RMI)ツール .\" SectDesc: Remote Method Invocation (RMI)ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "rmiregistry" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)" .TH "rmiregistry" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Java Webサービス・ツール .\" SectDesc: Java Webサービス・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "schemagen" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール" .TH "schemagen" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Remote Method Invocation (RMI)ツール .\" SectDesc: Remote Method Invocation (RMI)ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "serialver" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)" .TH "serialver" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Java IDLおよびRMI-IIOPツール .\" SectDesc: Java IDLおよびRMI-IIOPツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "servertool" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール" .TH "servertool" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Java IDLおよびRMI-IIOPツール .\" SectDesc: Java IDLおよびRMI-IIOPツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "tnameserv" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール" .TH "tnameserv" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール"
...@@ -189,7 +190,7 @@ Java Virtual Machine ...@@ -189,7 +190,7 @@ Java Virtual Machine
.SH "例" .SH "例"
.SS "ネームスペースへのオブジェクトの追加" .SS "ネームスペースへのオブジェクトの追加"
.PP .PP
次の例では、ネームスペースに名前を追加する方法を示します。このサンプル・プログラムは、このままの状態で完全に動作する一時ネーム・サービス・クライアントで、次のような単純なツリーを作成するものです。 次の例では、ネームスペースに名前を追加する方法を示します。このサンプル・プログラムは、自己完結型の一時ネーム・サービス・クライアントで、次のような単純なツリーを作成するものです。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Javaデプロイメント・ツール .\" SectDesc: Javaデプロイメント・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "unpack200" "1" "2013年11月21日" "JDK 8" "Javaデプロイメント・ツール" .TH "unpack200" "1" "2013年11月21日" "JDK 8" "Javaデプロイメント・ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Java Webサービス・ツール .\" SectDesc: Java Webサービス・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "wsgen" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール" .TH "wsgen" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Java Webサービス・ツール .\" SectDesc: Java Webサービス・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "wsimport" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール" .TH "wsimport" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Java Webサービス・ツール .\" SectDesc: Java Webサービス・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "xjc" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール" .TH "xjc" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール"
...@@ -129,7 +130,7 @@ Using the XJC with Ant ...@@ -129,7 +130,7 @@ Using the XJC with Ant
.PP .PP
\-p \fIpkg\fR \-p \fIpkg\fR
.RS 4 .RS 4
このコマンド行オプションでターゲット・パッケージを指定した場合、パッケージ名に対するすべてのバインディング・カスタマイズや、仕様で規定されているデフォルトのパッケージ名アルゴリズムよりも優先されます。 このコマンド行オプションでターゲット・パッケージを指定した場合、その指定内容は、パッケージ名に対するすべてのバインディング・カスタマイズや、仕様で規定されているデフォルトのパッケージ名アルゴリズムよりも優先されます。
.RE .RE
.PP .PP
\-httpproxy \fIproxy\fR \-httpproxy \fIproxy\fR
......
...@@ -1280,12 +1280,12 @@ public class AquaFileChooserUI extends FileChooserUI { ...@@ -1280,12 +1280,12 @@ public class AquaFileChooserUI extends FileChooserUI {
filters = (FileFilter[]) e.getNewValue(); filters = (FileFilter[]) e.getNewValue();
fireContentsChanged(this, -1, -1); fireContentsChanged(this, -1, -1);
} else if (prop == JFileChooser.FILE_FILTER_CHANGED_PROPERTY) { } else if (prop == JFileChooser.FILE_FILTER_CHANGED_PROPERTY) {
fireContentsChanged(this, -1, -1); setSelectedItem(e.getNewValue());
} }
} }
public void setSelectedItem(Object filter) { public void setSelectedItem(Object filter) {
if(filter != null) { if (filter != null && !containsFileFilter(filter)) {
getFileChooser().setFileFilter((FileFilter) filter); getFileChooser().setFileFilter((FileFilter) filter);
fireContentsChanged(this, -1, -1); fireContentsChanged(this, -1, -1);
} }
...@@ -1333,6 +1333,10 @@ public class AquaFileChooserUI extends FileChooserUI { ...@@ -1333,6 +1333,10 @@ public class AquaFileChooserUI extends FileChooserUI {
} }
} }
private boolean containsFileFilter(Object fileFilter) {
return Objects.equals(fileFilter, getFileChooser().getFileFilter());
}
/** /**
* Acts when FilterComboBox has changed the selected item. * Acts when FilterComboBox has changed the selected item.
*/ */
...@@ -1342,7 +1346,10 @@ public class AquaFileChooserUI extends FileChooserUI { ...@@ -1342,7 +1346,10 @@ public class AquaFileChooserUI extends FileChooserUI {
} }
public void actionPerformed(final ActionEvent e) { public void actionPerformed(final ActionEvent e) {
getFileChooser().setFileFilter((FileFilter)filterComboBox.getSelectedItem()); Object selectedFilter = filterComboBox.getSelectedItem();
if (!containsFileFilter(selectedFilter)) {
getFileChooser().setFileFilter((FileFilter) selectedFilter);
}
} }
} }
......
...@@ -104,6 +104,67 @@ static AWTWindow* lastKeyWindow = nil; ...@@ -104,6 +104,67 @@ static AWTWindow* lastKeyWindow = nil;
@implementation AWTWindow_Normal @implementation AWTWindow_Normal
AWT_NS_WINDOW_IMPLEMENTATION AWT_NS_WINDOW_IMPLEMENTATION
// Gesture support
- (void)postGesture:(NSEvent *)event as:(jint)type a:(jdouble)a b:(jdouble)b {
AWT_ASSERT_APPKIT_THREAD;
JNIEnv *env = [ThreadUtilities getJNIEnv];
jobject platformWindow = [((AWTWindow *)self.delegate).javaPlatformWindow jObjectWithEnv:env];
if (platformWindow != NULL) {
// extract the target AWT Window object out of the CPlatformWindow
static JNF_MEMBER_CACHE(jf_target, jc_CPlatformWindow, "target", "Ljava/awt/Window;");
jobject awtWindow = JNFGetObjectField(env, platformWindow, jf_target);
if (awtWindow != NULL) {
// translate the point into Java coordinates
NSPoint loc = [event locationInWindow];
loc.y = [self frame].size.height - loc.y;
// send up to the GestureHandler to recursively dispatch on the AWT event thread
static JNF_CLASS_CACHE(jc_GestureHandler, "com/apple/eawt/event/GestureHandler");
static JNF_STATIC_MEMBER_CACHE(sjm_handleGestureFromNative, jc_GestureHandler, "handleGestureFromNative", "(Ljava/awt/Window;IDDDD)V");
JNFCallStaticVoidMethod(env, sjm_handleGestureFromNative, awtWindow, type, (jdouble)loc.x, (jdouble)loc.y, (jdouble)a, (jdouble)b);
(*env)->DeleteLocalRef(env, awtWindow);
}
(*env)->DeleteLocalRef(env, platformWindow);
}
}
- (void)beginGestureWithEvent:(NSEvent *)event {
[self postGesture:event
as:com_apple_eawt_event_GestureHandler_PHASE
a:-1.0
b:0.0];
}
- (void)endGestureWithEvent:(NSEvent *)event {
[self postGesture:event
as:com_apple_eawt_event_GestureHandler_PHASE
a:1.0
b:0.0];
}
- (void)magnifyWithEvent:(NSEvent *)event {
[self postGesture:event
as:com_apple_eawt_event_GestureHandler_MAGNIFY
a:[event magnification]
b:0.0];
}
- (void)rotateWithEvent:(NSEvent *)event {
[self postGesture:event
as:com_apple_eawt_event_GestureHandler_ROTATE
a:[event rotation]
b:0.0];
}
- (void)swipeWithEvent:(NSEvent *)event {
[self postGesture:event
as:com_apple_eawt_event_GestureHandler_SWIPE
a:[event deltaX]
b:[event deltaY]];
}
@end @end
@implementation AWTWindow_Panel @implementation AWTWindow_Panel
AWT_NS_WINDOW_IMPLEMENTATION AWT_NS_WINDOW_IMPLEMENTATION
...@@ -399,67 +460,6 @@ AWT_ASSERT_APPKIT_THREAD; ...@@ -399,67 +460,6 @@ AWT_ASSERT_APPKIT_THREAD;
} }
// Gesture support
- (void)postGesture:(NSEvent *)event as:(jint)type a:(jdouble)a b:(jdouble)b {
AWT_ASSERT_APPKIT_THREAD;
JNIEnv *env = [ThreadUtilities getJNIEnv];
jobject platformWindow = [self.javaPlatformWindow jObjectWithEnv:env];
if (platformWindow != NULL) {
// extract the target AWT Window object out of the CPlatformWindow
static JNF_MEMBER_CACHE(jf_target, jc_CPlatformWindow, "target", "Ljava/awt/Window;");
jobject awtWindow = JNFGetObjectField(env, platformWindow, jf_target);
if (awtWindow != NULL) {
// translate the point into Java coordinates
NSPoint loc = [event locationInWindow];
loc.y = [self.nsWindow frame].size.height - loc.y;
// send up to the GestureHandler to recursively dispatch on the AWT event thread
static JNF_CLASS_CACHE(jc_GestureHandler, "com/apple/eawt/event/GestureHandler");
static JNF_STATIC_MEMBER_CACHE(sjm_handleGestureFromNative, jc_GestureHandler, "handleGestureFromNative", "(Ljava/awt/Window;IDDDD)V");
JNFCallStaticVoidMethod(env, sjm_handleGestureFromNative, awtWindow, type, (jdouble)loc.x, (jdouble)loc.y, (jdouble)a, (jdouble)b);
(*env)->DeleteLocalRef(env, awtWindow);
}
(*env)->DeleteLocalRef(env, platformWindow);
}
}
- (void)beginGestureWithEvent:(NSEvent *)event {
[self postGesture:event
as:com_apple_eawt_event_GestureHandler_PHASE
a:-1.0
b:0.0];
}
- (void)endGestureWithEvent:(NSEvent *)event {
[self postGesture:event
as:com_apple_eawt_event_GestureHandler_PHASE
a:1.0
b:0.0];
}
- (void)magnifyWithEvent:(NSEvent *)event {
[self postGesture:event
as:com_apple_eawt_event_GestureHandler_MAGNIFY
a:[event magnification]
b:0.0];
}
- (void)rotateWithEvent:(NSEvent *)event {
[self postGesture:event
as:com_apple_eawt_event_GestureHandler_ROTATE
a:[event rotation]
b:0.0];
}
- (void)swipeWithEvent:(NSEvent *)event {
[self postGesture:event
as:com_apple_eawt_event_GestureHandler_SWIPE
a:[event deltaX]
b:[event deltaY]];
}
// NSWindowDelegate methods // NSWindowDelegate methods
- (void) _deliverMoveResizeEvent { - (void) _deliverMoveResizeEvent {
......
...@@ -1285,7 +1285,7 @@ class GTKFileChooserUI extends SynthFileChooserUI { ...@@ -1285,7 +1285,7 @@ class GTKFileChooserUI extends SynthFileChooserUI {
/** /**
* Render different filters * Render different filters
*/ */
public class FilterComboBoxRenderer extends DefaultListCellRenderer implements UIResource { public class FilterComboBoxRenderer extends DefaultListCellRenderer {
public String getName() { public String getName() {
// As SynthComboBoxRenderer's are asked for a size BEFORE they // As SynthComboBoxRenderer's are asked for a size BEFORE they
// are parented getName is overriden to force the name to be // are parented getName is overriden to force the name to be
......
...@@ -111,7 +111,6 @@ public final class Connection implements Runnable { ...@@ -111,7 +111,6 @@ public final class Connection implements Runnable {
private static final boolean debug = false; private static final boolean debug = false;
private static final int dump = 0; // > 0 r, > 1 rw private static final int dump = 0; // > 0 r, > 1 rw
public static final long DEFAULT_READ_TIMEOUT_MILLIS = 15 * 1000; // 15 second timeout;
final private Thread worker; // Initialized in constructor final private Thread worker; // Initialized in constructor
...@@ -460,10 +459,13 @@ public final class Connection implements Runnable { ...@@ -460,10 +459,13 @@ public final class Connection implements Runnable {
// will be woken up before readTimeout only if reply is // will be woken up before readTimeout only if reply is
// available // available
ldr.wait(readTimeout); ldr.wait(readTimeout);
waited = true;
} else { } else {
ldr.wait(DEFAULT_READ_TIMEOUT_MILLIS); // no timeout is set so we wait infinitely until
// a response is received
// http://docs.oracle.com/javase/8/docs/technotes/guides/jndi/jndi-ldap.html#PROP
ldr.wait();
} }
waited = true;
} else { } else {
break; break;
} }
......
...@@ -293,6 +293,7 @@ public final class SplashScreen { ...@@ -293,6 +293,7 @@ public final class SplashScreen {
*/ */
public Graphics2D createGraphics() throws IllegalStateException { public Graphics2D createGraphics() throws IllegalStateException {
synchronized (SplashScreen.class) { synchronized (SplashScreen.class) {
checkVisible();
if (image==null) { if (image==null) {
// get unscaled splash image size // get unscaled splash image size
Dimension dim = _getBounds(splashPtr).getSize(); Dimension dim = _getBounds(splashPtr).getSize();
...@@ -419,4 +420,4 @@ public final class SplashScreen { ...@@ -419,4 +420,4 @@ public final class SplashScreen {
private native static boolean _setImageData(long SplashPtr, byte[] data); private native static boolean _setImageData(long SplashPtr, byte[] data);
private native static float _getScaleFactor(long SplashPtr); private native static float _getScaleFactor(long SplashPtr);
}; }
/* /*
* Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -44,7 +44,7 @@ import java.util.EventListener; ...@@ -44,7 +44,7 @@ import java.util.EventListener;
* *
* @see KeyAdapter * @see KeyAdapter
* @see KeyEvent * @see KeyEvent
* @see <a href="http://java.sun.com/docs/books/tutorial/post1.0/ui/keylistener.html">Tutorial: Writing a Key Listener</a> * @see <a href="https://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html">Tutorial: Writing a Key Listener</a>
* *
* @since 1.1 * @since 1.1
*/ */
......
...@@ -689,6 +689,8 @@ public final class Class<T> implements java.io.Serializable, ...@@ -689,6 +689,8 @@ public final class Class<T> implements java.io.Serializable,
ClassLoader getClassLoader0() { return classLoader; } ClassLoader getClassLoader0() { return classLoader; }
// Initialized in JVM not by private constructor // Initialized in JVM not by private constructor
// This field is filtered from reflection access, i.e. getDeclaredField
// will throw NoSuchFieldException
private final ClassLoader classLoader; private final ClassLoader classLoader;
/** /**
......
...@@ -584,7 +584,10 @@ public final class System { ...@@ -584,7 +584,10 @@ public final class System {
* <tr><td><code>java.compiler</code></td> * <tr><td><code>java.compiler</code></td>
* <td>Name of JIT compiler to use</td></tr> * <td>Name of JIT compiler to use</td></tr>
* <tr><td><code>java.ext.dirs</code></td> * <tr><td><code>java.ext.dirs</code></td>
* <td>Path of extension directory or directories</td></tr> * <td>Path of extension directory or directories
* <b>Deprecated.</b> <i>This property, and the mechanism
* which implements it, may be removed in a future
* release.</i> </td></tr>
* <tr><td><code>os.name</code></td> * <tr><td><code>os.name</code></td>
* <td>Operating system name</td></tr> * <td>Operating system name</td></tr>
* <tr><td><code>os.arch</code></td> * <tr><td><code>os.arch</code></td>
......
...@@ -125,7 +125,7 @@ class LambdaForm { ...@@ -125,7 +125,7 @@ class LambdaForm {
MemberName vmentry; // low-level behavior, or null if not yet prepared MemberName vmentry; // low-level behavior, or null if not yet prepared
private boolean isCompiled; private boolean isCompiled;
Object transformCache; // managed by LambdaFormEditor volatile Object transformCache; // managed by LambdaFormEditor
public static final int VOID_RESULT = -1, LAST_RESULT = -2; public static final int VOID_RESULT = -1, LAST_RESULT = -2;
......
...@@ -46,19 +46,16 @@ final class LambdaFormBuffer { ...@@ -46,19 +46,16 @@ final class LambdaFormBuffer {
private static final int F_TRANS = 0x10, F_OWNED = 0x03; private static final int F_TRANS = 0x10, F_OWNED = 0x03;
LambdaFormBuffer(LambdaForm lf) { LambdaFormBuffer(LambdaForm lf) {
this(lf.arity, lf.names, lf.result); this.arity = lf.arity;
setNames(lf.names);
int result = lf.result;
if (result == LAST_RESULT) result = length - 1;
if (result >= 0 && lf.names[result].type != V_TYPE)
resultName = lf.names[result];
debugName = lf.debugName; debugName = lf.debugName;
assert(lf.nameRefsAreLegal()); assert(lf.nameRefsAreLegal());
} }
private LambdaFormBuffer(int arity, Name[] names, int result) {
this.arity = arity;
setNames(names);
if (result == LAST_RESULT) result = length - 1;
if (result >= 0 && names[result].type != V_TYPE)
resultName = names[result];
}
private LambdaForm lambdaForm() { private LambdaForm lambdaForm() {
assert(!inTrans()); // need endEdit call to tidy things up assert(!inTrans()); // need endEdit call to tidy things up
return new LambdaForm(debugName, arity, nameArray(), resultIndex()); return new LambdaForm(debugName, arity, nameArray(), resultIndex());
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
package java.lang.invoke; package java.lang.invoke;
import java.lang.ref.SoftReference;
import java.util.Arrays; import java.util.Arrays;
import static java.lang.invoke.LambdaForm.*; import static java.lang.invoke.LambdaForm.*;
import static java.lang.invoke.LambdaForm.BasicType.*; import static java.lang.invoke.LambdaForm.BasicType.*;
...@@ -58,10 +59,9 @@ class LambdaFormEditor { ...@@ -58,10 +59,9 @@ class LambdaFormEditor {
* The sequence is unterminated, ending with an indefinite number of zero bytes. * The sequence is unterminated, ending with an indefinite number of zero bytes.
* Sequences that are simple (short enough and with small enough values) pack into a 64-bit long. * Sequences that are simple (short enough and with small enough values) pack into a 64-bit long.
*/ */
private static final class Transform { private static final class Transform extends SoftReference<LambdaForm> {
final long packedBytes; final long packedBytes;
final byte[] fullBytes; final byte[] fullBytes;
final LambdaForm result; // result of transform, or null, if there is none available
private enum Kind { private enum Kind {
NO_KIND, // necessary because ordinal must be greater than zero NO_KIND, // necessary because ordinal must be greater than zero
...@@ -140,9 +140,9 @@ class LambdaFormEditor { ...@@ -140,9 +140,9 @@ class LambdaFormEditor {
Kind kind() { return Kind.values()[byteAt(0)]; } Kind kind() { return Kind.values()[byteAt(0)]; }
private Transform(long packedBytes, byte[] fullBytes, LambdaForm result) { private Transform(long packedBytes, byte[] fullBytes, LambdaForm result) {
super(result);
this.packedBytes = packedBytes; this.packedBytes = packedBytes;
this.fullBytes = fullBytes; this.fullBytes = fullBytes;
this.result = result;
} }
private Transform(long packedBytes) { private Transform(long packedBytes) {
this(packedBytes, null, null); this(packedBytes, null, null);
...@@ -243,6 +243,7 @@ class LambdaFormEditor { ...@@ -243,6 +243,7 @@ class LambdaFormEditor {
buf.append("unpacked"); buf.append("unpacked");
buf.append(Arrays.toString(fullBytes)); buf.append(Arrays.toString(fullBytes));
} }
LambdaForm result = get();
if (result != null) { if (result != null) {
buf.append(" result="); buf.append(" result=");
buf.append(result); buf.append(result);
...@@ -253,7 +254,7 @@ class LambdaFormEditor { ...@@ -253,7 +254,7 @@ class LambdaFormEditor {
/** Find a previously cached transform equivalent to the given one, and return its result. */ /** Find a previously cached transform equivalent to the given one, and return its result. */
private LambdaForm getInCache(Transform key) { private LambdaForm getInCache(Transform key) {
assert(key.result == null); assert(key.get() == null);
// The transformCache is one of null, Transform, Transform[], or ConcurrentHashMap. // The transformCache is one of null, Transform, Transform[], or ConcurrentHashMap.
Object c = lambdaForm.transformCache; Object c = lambdaForm.transformCache;
Transform k = null; Transform k = null;
...@@ -276,7 +277,7 @@ class LambdaFormEditor { ...@@ -276,7 +277,7 @@ class LambdaFormEditor {
} }
} }
assert(k == null || key.equals(k)); assert(k == null || key.equals(k));
return k == null ? null : k.result; return (k != null) ? k.get() : null;
} }
/** Arbitrary but reasonable limits on Transform[] size for cache. */ /** Arbitrary but reasonable limits on Transform[] size for cache. */
...@@ -293,7 +294,17 @@ class LambdaFormEditor { ...@@ -293,7 +294,17 @@ class LambdaFormEditor {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
ConcurrentHashMap<Transform,Transform> m = (ConcurrentHashMap<Transform,Transform>) c; ConcurrentHashMap<Transform,Transform> m = (ConcurrentHashMap<Transform,Transform>) c;
Transform k = m.putIfAbsent(key, key); Transform k = m.putIfAbsent(key, key);
return k != null ? k.result : form; if (k == null) return form;
LambdaForm result = k.get();
if (result != null) {
return result;
} else {
if (m.replace(key, k, key)) {
return form;
} else {
continue;
}
}
} }
assert(pass == 0); assert(pass == 0);
synchronized (lambdaForm) { synchronized (lambdaForm) {
...@@ -308,17 +319,27 @@ class LambdaFormEditor { ...@@ -308,17 +319,27 @@ class LambdaFormEditor {
if (c instanceof Transform) { if (c instanceof Transform) {
Transform k = (Transform)c; Transform k = (Transform)c;
if (k.equals(key)) { if (k.equals(key)) {
return k.result; LambdaForm result = k.get();
if (result == null) {
lambdaForm.transformCache = key;
return form;
} else {
return result;
}
} else if (k.get() == null) { // overwrite stale entry
lambdaForm.transformCache = key;
return form;
} }
// expand one-element cache to small array // expand one-element cache to small array
ta = new Transform[MIN_CACHE_ARRAY_SIZE]; ta = new Transform[MIN_CACHE_ARRAY_SIZE];
ta[0] = k; ta[0] = k;
lambdaForm.transformCache = c = ta; lambdaForm.transformCache = ta;
} else { } else {
// it is already expanded // it is already expanded
ta = (Transform[])c; ta = (Transform[])c;
} }
int len = ta.length; int len = ta.length;
int stale = -1;
int i; int i;
for (i = 0; i < len; i++) { for (i = 0; i < len; i++) {
Transform k = ta[i]; Transform k = ta[i];
...@@ -326,10 +347,18 @@ class LambdaFormEditor { ...@@ -326,10 +347,18 @@ class LambdaFormEditor {
break; break;
} }
if (k.equals(key)) { if (k.equals(key)) {
return k.result; LambdaForm result = k.get();
if (result == null) {
ta[i] = key;
return form;
} else {
return result;
} }
} else if (stale < 0 && k.get() == null) {
stale = i; // remember 1st stale entry index
} }
if (i < len) { }
if (i < len || stale >= 0) {
// just fall through to cache update // just fall through to cache update
} else if (len < MAX_CACHE_ARRAY_SIZE) { } else if (len < MAX_CACHE_ARRAY_SIZE) {
len = Math.min(len * 2, MAX_CACHE_ARRAY_SIZE); len = Math.min(len * 2, MAX_CACHE_ARRAY_SIZE);
...@@ -344,7 +373,8 @@ class LambdaFormEditor { ...@@ -344,7 +373,8 @@ class LambdaFormEditor {
// The second iteration will update for this query, concurrently. // The second iteration will update for this query, concurrently.
continue; continue;
} }
ta[i] = key; int idx = (stale >= 0) ? stale : i;
ta[idx] = key;
return form; return form;
} }
} }
......
...@@ -2029,7 +2029,7 @@ return invoker; ...@@ -2029,7 +2029,7 @@ return invoker;
MethodType oldType = target.type(); MethodType oldType = target.type();
if (oldType == newType) return target; if (oldType == newType) return target;
if (oldType.explicitCastEquivalentToAsType(newType)) { if (oldType.explicitCastEquivalentToAsType(newType)) {
return target.asType(newType); return target.asFixedArity().asType(newType);
} }
return MethodHandleImpl.makePairwiseConvert(target, newType, false); return MethodHandleImpl.makePairwiseConvert(target, newType, false);
} }
......
...@@ -26,9 +26,8 @@ ...@@ -26,9 +26,8 @@
package java.lang.invoke; package java.lang.invoke;
import sun.invoke.util.Wrapper; import sun.invoke.util.Wrapper;
import java.lang.ref.SoftReference;
import static java.lang.invoke.MethodHandleStatics.*; import static java.lang.invoke.MethodHandleStatics.*;
import static java.lang.invoke.MethodHandleNatives.Constants.*;
import static java.lang.invoke.MethodHandles.Lookup.IMPL_LOOKUP;
/** /**
* Shared information for a group of method types, which differ * Shared information for a group of method types, which differ
...@@ -51,7 +50,7 @@ final class MethodTypeForm { ...@@ -51,7 +50,7 @@ final class MethodTypeForm {
final MethodType basicType; // the canonical erasure, with primitives simplified final MethodType basicType; // the canonical erasure, with primitives simplified
// Cached adapter information: // Cached adapter information:
@Stable final MethodHandle[] methodHandles; @Stable final SoftReference<MethodHandle>[] methodHandles;
// Indexes into methodHandles: // Indexes into methodHandles:
static final int static final int
MH_BASIC_INV = 0, // cached instance of MH.invokeBasic MH_BASIC_INV = 0, // cached instance of MH.invokeBasic
...@@ -60,7 +59,7 @@ final class MethodTypeForm { ...@@ -60,7 +59,7 @@ final class MethodTypeForm {
MH_LIMIT = 3; MH_LIMIT = 3;
// Cached lambda form information, for basic types only: // Cached lambda form information, for basic types only:
final @Stable LambdaForm[] lambdaForms; final @Stable SoftReference<LambdaForm>[] lambdaForms;
// Indexes into lambdaForms: // Indexes into lambdaForms:
static final int static final int
LF_INVVIRTUAL = 0, // DMH invokeVirtual LF_INVVIRTUAL = 0, // DMH invokeVirtual
...@@ -108,26 +107,40 @@ final class MethodTypeForm { ...@@ -108,26 +107,40 @@ final class MethodTypeForm {
public MethodHandle cachedMethodHandle(int which) { public MethodHandle cachedMethodHandle(int which) {
assert(assertIsBasicType()); assert(assertIsBasicType());
return methodHandles[which]; SoftReference<MethodHandle> entry = methodHandles[which];
return (entry != null) ? entry.get() : null;
} }
synchronized public MethodHandle setCachedMethodHandle(int which, MethodHandle mh) { synchronized public MethodHandle setCachedMethodHandle(int which, MethodHandle mh) {
// Simulate a CAS, to avoid racy duplication of results. // Simulate a CAS, to avoid racy duplication of results.
MethodHandle prev = methodHandles[which]; SoftReference<MethodHandle> entry = methodHandles[which];
if (prev != null) return prev; if (entry != null) {
return methodHandles[which] = mh; MethodHandle prev = entry.get();
if (prev != null) {
return prev;
}
}
methodHandles[which] = new SoftReference<>(mh);
return mh;
} }
public LambdaForm cachedLambdaForm(int which) { public LambdaForm cachedLambdaForm(int which) {
assert(assertIsBasicType()); assert(assertIsBasicType());
return lambdaForms[which]; SoftReference<LambdaForm> entry = lambdaForms[which];
return (entry != null) ? entry.get() : null;
} }
synchronized public LambdaForm setCachedLambdaForm(int which, LambdaForm form) { synchronized public LambdaForm setCachedLambdaForm(int which, LambdaForm form) {
// Simulate a CAS, to avoid racy duplication of results. // Simulate a CAS, to avoid racy duplication of results.
LambdaForm prev = lambdaForms[which]; SoftReference<LambdaForm> entry = lambdaForms[which];
if (prev != null) return prev; if (entry != null) {
return lambdaForms[which] = form; LambdaForm prev = entry.get();
if (prev != null) {
return prev;
}
}
lambdaForms[which] = new SoftReference<>(form);
return form;
} }
/** /**
...@@ -135,6 +148,7 @@ final class MethodTypeForm { ...@@ -135,6 +148,7 @@ final class MethodTypeForm {
* This MTF will stand for that type and all un-erased variations. * This MTF will stand for that type and all un-erased variations.
* Eagerly compute some basic properties of the type, common to all variations. * Eagerly compute some basic properties of the type, common to all variations.
*/ */
@SuppressWarnings({"rawtypes", "unchecked"})
protected MethodTypeForm(MethodType erasedType) { protected MethodTypeForm(MethodType erasedType) {
this.erasedType = erasedType; this.erasedType = erasedType;
...@@ -234,8 +248,8 @@ final class MethodTypeForm { ...@@ -234,8 +248,8 @@ final class MethodTypeForm {
// Initialize caches, but only for basic types // Initialize caches, but only for basic types
assert(basicType == erasedType); assert(basicType == erasedType);
this.lambdaForms = new LambdaForm[LF_LIMIT]; this.lambdaForms = new SoftReference[LF_LIMIT];
this.methodHandles = new MethodHandle[MH_LIMIT]; this.methodHandles = new SoftReference[MH_LIMIT];
} }
private static long pack(int a, int b, int c, int d) { private static long pack(int a, int b, int c, int d) {
...@@ -409,5 +423,4 @@ final class MethodTypeForm { ...@@ -409,5 +423,4 @@ final class MethodTypeForm {
public String toString() { public String toString() {
return "Form"+erasedType; return "Form"+erasedType;
} }
} }
...@@ -140,13 +140,6 @@ public class AccessibleObject implements AnnotatedElement { ...@@ -140,13 +140,6 @@ public class AccessibleObject implements AnnotatedElement {
throw new SecurityException("Cannot make a java.lang.Class" + throw new SecurityException("Cannot make a java.lang.Class" +
" constructor accessible"); " constructor accessible");
} }
} else if (obj instanceof Field && flag == true) {
Field f = (Field)obj;
if (f.getDeclaringClass() == Class.class &&
f.getName().equals("classLoader")) {
throw new SecurityException("Cannot make java.lang.Class.classLoader" +
" accessible");
}
} }
obj.override = flag; obj.override = flag;
} }
......
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
package java.util; package java.util;
import java.net.NetworkInterface;
import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicLong;
import java.util.function.IntConsumer; import java.util.function.IntConsumer;
import java.util.function.LongConsumer; import java.util.function.LongConsumer;
...@@ -140,11 +139,10 @@ public final class SplittableRandom { ...@@ -140,11 +139,10 @@ public final class SplittableRandom {
* other cases, this split must be performed in a thread-safe * other cases, this split must be performed in a thread-safe
* manner, so we use an AtomicLong to represent the seed rather * manner, so we use an AtomicLong to represent the seed rather
* than use an explicit SplittableRandom. To bootstrap the * than use an explicit SplittableRandom. To bootstrap the
* defaultGen, we start off using a seed based on current time and * defaultGen, we start off using a seed based on current time
* network interface address unless the java.util.secureRandomSeed * unless the java.util.secureRandomSeed property is set. This
* property is set. This serves as a slimmed-down (and insecure) * serves as a slimmed-down (and insecure) variant of SecureRandom
* variant of SecureRandom that also avoids stalls that may occur * that also avoids stalls that may occur when using /dev/random.
* when using /dev/random.
* *
* It is a relatively simple matter to apply the basic design here * It is a relatively simple matter to apply the basic design here
* to use 128 bit seeds. However, emulating 128bit arithmetic and * to use 128 bit seeds. However, emulating 128bit arithmetic and
...@@ -237,34 +235,7 @@ public final class SplittableRandom { ...@@ -237,34 +235,7 @@ public final class SplittableRandom {
s = (s << 8) | ((long)(seedBytes[i]) & 0xffL); s = (s << 8) | ((long)(seedBytes[i]) & 0xffL);
return s; return s;
} }
long h = 0L; return (mix64(System.currentTimeMillis()) ^
try {
Enumeration<NetworkInterface> ifcs =
NetworkInterface.getNetworkInterfaces();
boolean retry = false; // retry once if getHardwareAddress is null
while (ifcs.hasMoreElements()) {
NetworkInterface ifc = ifcs.nextElement();
if (!ifc.isVirtual()) { // skip fake addresses
byte[] bs = ifc.getHardwareAddress();
if (bs != null) {
int n = bs.length;
int m = Math.min(n >>> 1, 4);
for (int i = 0; i < m; ++i)
h = (h << 16) ^ (bs[i] << 8) ^ bs[n-1-i];
if (m < 4)
h = (h << 8) ^ bs[n-1-m];
h = mix64(h);
break;
}
else if (!retry)
retry = true;
else
break;
}
}
} catch (Exception ignore) {
}
return (h ^ mix64(System.currentTimeMillis()) ^
mix64(System.nanoTime())); mix64(System.nanoTime()));
} }
......
...@@ -36,8 +36,6 @@ ...@@ -36,8 +36,6 @@
package java.util.concurrent; package java.util.concurrent;
import java.io.ObjectStreamField; import java.io.ObjectStreamField;
import java.net.NetworkInterface;
import java.util.Enumeration;
import java.util.Random; import java.util.Random;
import java.util.Spliterator; import java.util.Spliterator;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
...@@ -147,34 +145,7 @@ public class ThreadLocalRandom extends Random { ...@@ -147,34 +145,7 @@ public class ThreadLocalRandom extends Random {
s = (s << 8) | ((long)(seedBytes[i]) & 0xffL); s = (s << 8) | ((long)(seedBytes[i]) & 0xffL);
return s; return s;
} }
long h = 0L; return (mix64(System.currentTimeMillis()) ^
try {
Enumeration<NetworkInterface> ifcs =
NetworkInterface.getNetworkInterfaces();
boolean retry = false; // retry once if getHardwareAddress is null
while (ifcs.hasMoreElements()) {
NetworkInterface ifc = ifcs.nextElement();
if (!ifc.isVirtual()) { // skip fake addresses
byte[] bs = ifc.getHardwareAddress();
if (bs != null) {
int n = bs.length;
int m = Math.min(n >>> 1, 4);
for (int i = 0; i < m; ++i)
h = (h << 16) ^ (bs[i] << 8) ^ bs[n-1-i];
if (m < 4)
h = (h << 8) ^ bs[n-1-m];
h = mix64(h);
break;
}
else if (!retry)
retry = true;
else
break;
}
}
} catch (Exception ignore) {
}
return (h ^ mix64(System.currentTimeMillis()) ^
mix64(System.nanoTime())); mix64(System.nanoTime()));
} }
......
...@@ -550,8 +550,8 @@ public class Attributes implements Map<Object,Object>, Cloneable { ...@@ -550,8 +550,8 @@ public class Attributes implements Map<Object,Object>, Cloneable {
* <code>Name</code> object for <code>Class-Path</code> * <code>Name</code> object for <code>Class-Path</code>
* manifest attribute. Bundled extensions can use this attribute * manifest attribute. Bundled extensions can use this attribute
* to find other JAR files containing needed classes. * to find other JAR files containing needed classes.
* @see <a href="../../../../technotes/guides/extensions/spec.html#bundled"> * @see <a href="../../../../technotes/guides/jar/jar.html#classpath">
* Extensions Specification</a> * JAR file specification</a>
*/ */
public static final Name CLASS_PATH = new Name("Class-Path"); public static final Name CLASS_PATH = new Name("Class-Path");
...@@ -567,8 +567,8 @@ public class Attributes implements Map<Object,Object>, Cloneable { ...@@ -567,8 +567,8 @@ public class Attributes implements Map<Object,Object>, Cloneable {
/** /**
* <code>Name</code> object for <code>Sealed</code> manifest attribute * <code>Name</code> object for <code>Sealed</code> manifest attribute
* used for sealing. * used for sealing.
* @see <a href="../../../../technotes/guides/extensions/spec.html#sealing"> * @see <a href="../../../../technotes/guides/jar/jar.html#sealing">
* Extension Sealing</a> * Package Sealing</a>
*/ */
public static final Name SEALED = new Name("Sealed"); public static final Name SEALED = new Name("Sealed");
...@@ -591,9 +591,12 @@ public class Attributes implements Map<Object,Object>, Cloneable { ...@@ -591,9 +591,12 @@ public class Attributes implements Map<Object,Object>, Cloneable {
/** /**
* <code>Name</code> object for <code>Extension-Name</code> manifest attribute * <code>Name</code> object for <code>Extension-Name</code> manifest attribute
* used for declaring dependencies on installed extensions. * used for declaring dependencies on installed extensions.
* @deprecated Extension mechanism will be removed in a future release.
* Use class path instead.
* @see <a href="../../../../technotes/guides/extensions/spec.html#dependency"> * @see <a href="../../../../technotes/guides/extensions/spec.html#dependency">
* Installed extension dependency</a> * Installed extension dependency</a>
*/ */
@Deprecated
public static final Name EXTENSION_INSTALLATION = new Name("Extension-Installation"); public static final Name EXTENSION_INSTALLATION = new Name("Extension-Installation");
/** /**
...@@ -623,17 +626,23 @@ public class Attributes implements Map<Object,Object>, Cloneable { ...@@ -623,17 +626,23 @@ public class Attributes implements Map<Object,Object>, Cloneable {
/** /**
* <code>Name</code> object for <code>Implementation-Vendor-Id</code> * <code>Name</code> object for <code>Implementation-Vendor-Id</code>
* manifest attribute used for package versioning. * manifest attribute used for package versioning.
* @see <a href="../../../../technotes/guides/versioning/spec/versioning2.html#wp90779"> * @deprecated Extension mechanism will be removed in a future release.
* Java Product Versioning Specification</a> * Use class path instead.
* @see <a href="../../../../technotes/guides/extensions/versioning.html#applet">
* Optional Package Versioning</a>
*/ */
@Deprecated
public static final Name IMPLEMENTATION_VENDOR_ID = new Name("Implementation-Vendor-Id"); public static final Name IMPLEMENTATION_VENDOR_ID = new Name("Implementation-Vendor-Id");
/** /**
* <code>Name</code> object for <code>Implementation-URL</code> * <code>Name</code> object for <code>Implementation-URL</code>
* manifest attribute used for package versioning. * manifest attribute used for package versioning.
* @see <a href="../../../../technotes/guides/versioning/spec/versioning2.html#wp90779"> * @deprecated Extension mechanism will be removed in a future release.
* Java Product Versioning Specification</a> * Use class path instead.
* @see <a href="../../../../technotes/guides/extensions/versioning.html#applet">
* Optional Package Versioning</a>
*/ */
@Deprecated
public static final Name IMPLEMENTATION_URL = new Name("Implementation-URL"); public static final Name IMPLEMENTATION_URL = new Name("Implementation-URL");
/** /**
......
...@@ -502,11 +502,11 @@ public class LogManager { ...@@ -502,11 +502,11 @@ public class LogManager {
JavaAWTAccess javaAwtAccess = SharedSecrets.getJavaAWTAccess(); JavaAWTAccess javaAwtAccess = SharedSecrets.getJavaAWTAccess();
if (sm != null && javaAwtAccess != null) { if (sm != null && javaAwtAccess != null) {
// for each applet, it has its own LoggerContext isolated from others // for each applet, it has its own LoggerContext isolated from others
final Object ecx = javaAwtAccess.getAppletContext();
if (ecx != null) {
synchronized (javaAwtAccess) { synchronized (javaAwtAccess) {
// find the AppContext of the applet code // find the AppContext of the applet code
// will be null if we are in the main app context. // will be null if we are in the main app context.
final Object ecx = javaAwtAccess.getAppletContext();
if (ecx != null) {
if (contextsMap == null) { if (contextsMap == null) {
contextsMap = new WeakHashMap<>(); contextsMap = new WeakHashMap<>();
} }
......
...@@ -1308,8 +1308,8 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible { ...@@ -1308,8 +1308,8 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
*/ */
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
ComboBoxEditor editor = getEditor(); ComboBoxEditor editor = getEditor();
if ((editor != null) && (e != null) if ((editor != null) && (e != null) && (editor == e.getSource()
&& (editor.getEditorComponent() == e.getSource())) { || editor.getEditorComponent() == e.getSource())) {
setPopupVisible(false); setPopupVisible(false);
getModel().setSelectedItem(editor.getItem()); getModel().setSelectedItem(editor.getItem());
String oldCommand = getActionCommand(); String oldCommand = getActionCommand();
......
...@@ -274,7 +274,7 @@ public abstract class DataTransferer { ...@@ -274,7 +274,7 @@ public abstract class DataTransferer {
* instead, null will be returned. * instead, null will be returned.
*/ */
public static synchronized DataTransferer getInstance() { public static synchronized DataTransferer getInstance() {
return ((SunToolkit) Toolkit.getDefaultToolkit()).getDataTransferer(); return ((ComponentFactory) Toolkit.getDefaultToolkit()).getDataTransferer();
} }
/** /**
......
...@@ -80,7 +80,7 @@ public class MultiResolutionToolkitImage extends ToolkitImage implements MultiRe ...@@ -80,7 +80,7 @@ public class MultiResolutionToolkitImage extends ToolkitImage implements MultiRe
} }
synchronized (ObserverCache.INSTANCE) { synchronized (ObserverCache.INSTANCE) {
ImageObserver o = (ImageObserver) ObserverCache.INSTANCE.get(image); ImageObserver o = (ImageObserver) ObserverCache.INSTANCE.get(observer);
if (o == null) { if (o == null) {
...@@ -109,7 +109,7 @@ public class MultiResolutionToolkitImage extends ToolkitImage implements MultiRe ...@@ -109,7 +109,7 @@ public class MultiResolutionToolkitImage extends ToolkitImage implements MultiRe
image, flags, x, y, width, height); image, flags, x, y, width, height);
}; };
ObserverCache.INSTANCE.put(image, o); ObserverCache.INSTANCE.put(observer, o);
} }
return o; return o;
} }
......
...@@ -364,8 +364,53 @@ public class DrawImage implements DrawImagePipe ...@@ -364,8 +364,53 @@ public class DrawImage implements DrawImagePipe
int sx1, int sy1, int sx2, int sy2, int sx1, int sy1, int sx2, int sy2,
Color bgColor) Color bgColor)
{ {
final AffineTransform itx;
try {
itx = tx.createInverse();
} catch (final NoninvertibleTransformException ignored) {
// Non-invertible transform means no output
return;
}
/*
* Find the maximum bounds on the destination that will be
* affected by the transformed source. First, transform all
* four corners of the source and then min and max the resulting
* destination coordinates of the transformed corners.
* Note that tx already has the offset to sx1,sy1 accounted
* for so we use the box (0, 0, sx2-sx1, sy2-sy1) as the
* source coordinates.
*/
final double[] coords = new double[8];
/* corner: UL UR LL LR */
/* index: 0 1 2 3 4 5 6 7 */
/* coord: (0, 0), (w, 0), (0, h), (w, h) */
coords[2] = coords[6] = sx2 - sx1;
coords[5] = coords[7] = sy2 - sy1;
tx.transform(coords, 0, coords, 0, 4);
double ddx1, ddy1, ddx2, ddy2;
ddx1 = ddx2 = coords[0];
ddy1 = ddy2 = coords[1];
for (int i = 2; i < coords.length; i += 2) {
double d = coords[i];
if (ddx1 > d) ddx1 = d;
else if (ddx2 < d) ddx2 = d;
d = coords[i+1];
if (ddy1 > d) ddy1 = d;
else if (ddy2 < d) ddy2 = d;
}
Region clip = sg.getCompClip(); Region clip = sg.getCompClip();
SurfaceData dstData = sg.surfaceData; final int dx1 = Math.max((int) Math.floor(ddx1), clip.lox);
final int dy1 = Math.max((int) Math.floor(ddy1), clip.loy);
final int dx2 = Math.min((int) Math.ceil(ddx2), clip.hix);
final int dy2 = Math.min((int) Math.ceil(ddy2), clip.hiy);
if (dx2 <= dx1 || dy2 <= dy1) {
// empty destination means no output
return;
}
final SurfaceData dstData = sg.surfaceData;
SurfaceData srcData = dstData.getSourceSurfaceData(img, SurfaceData srcData = dstData.getSourceSurfaceData(img,
SunGraphics2D.TRANSFORM_GENERIC, SunGraphics2D.TRANSFORM_GENERIC,
sg.imageComp, sg.imageComp,
...@@ -429,56 +474,13 @@ public class DrawImage implements DrawImagePipe ...@@ -429,56 +474,13 @@ public class DrawImage implements DrawImagePipe
// assert(helper != null); // assert(helper != null);
} }
AffineTransform itx;
try {
itx = tx.createInverse();
} catch (NoninvertibleTransformException e) {
// Non-invertible transform means no output
return;
}
/*
* Find the maximum bounds on the destination that will be
* affected by the transformed source. First, transform all
* four corners of the source and then min and max the resulting
* destination coordinates of the transformed corners.
* Note that tx already has the offset to sx1,sy1 accounted
* for so we use the box (0, 0, sx2-sx1, sy2-sy1) as the
* source coordinates.
*/
double coords[] = new double[8];
/* corner: UL UR LL LR */
/* index: 0 1 2 3 4 5 6 7 */
/* coord: (0, 0), (w, 0), (0, h), (w, h) */
coords[2] = coords[6] = sx2 - sx1;
coords[5] = coords[7] = sy2 - sy1;
tx.transform(coords, 0, coords, 0, 4);
double ddx1, ddy1, ddx2, ddy2;
ddx1 = ddx2 = coords[0];
ddy1 = ddy2 = coords[1];
for (int i = 2; i < coords.length; i += 2) {
double d = coords[i];
if (ddx1 > d) ddx1 = d;
else if (ddx2 < d) ddx2 = d;
d = coords[i+1];
if (ddy1 > d) ddy1 = d;
else if (ddy2 < d) ddy2 = d;
}
int dx1 = (int) Math.floor(ddx1);
int dy1 = (int) Math.floor(ddy1);
int dx2 = (int) Math.ceil(ddx2);
int dy2 = (int) Math.ceil(ddy2);
SurfaceType dstType = dstData.getSurfaceType(); SurfaceType dstType = dstData.getSurfaceType();
MaskBlit maskblit;
Blit blit;
if (sg.compositeState <= SunGraphics2D.COMP_ALPHA) { if (sg.compositeState <= SunGraphics2D.COMP_ALPHA) {
/* NOTE: We either have, or we can make, /* NOTE: We either have, or we can make,
* a MaskBlit for any alpha composite type * a MaskBlit for any alpha composite type
*/ */
maskblit = MaskBlit.getFromCache(SurfaceType.IntArgbPre, MaskBlit maskblit = MaskBlit.getFromCache(SurfaceType.IntArgbPre,
sg.imageComp, sg.imageComp, dstType);
dstType);
/* NOTE: We can only use the native TransformHelper /* NOTE: We can only use the native TransformHelper
* func to go directly to the dest if both the helper * func to go directly to the dest if both the helper
...@@ -496,25 +498,17 @@ public class DrawImage implements DrawImagePipe ...@@ -496,25 +498,17 @@ public class DrawImage implements DrawImagePipe
null, 0, 0); null, 0, 0);
return; return;
} }
blit = null;
} else {
/* NOTE: We either have, or we can make,
* a Blit for any composite type, even Custom
*/
maskblit = null;
blit = Blit.getFromCache(SurfaceType.IntArgbPre,
sg.imageComp,
dstType);
} }
// We need to transform to a temp image and then copy // We need to transform to a temp image and then copy
// just the pieces that are valid data to the dest. // just the pieces that are valid data to the dest.
BufferedImage tmpimg = new BufferedImage(dx2-dx1, dy2-dy1, final int w = dx2 - dx1;
final int h = dy2 - dy1;
BufferedImage tmpimg = new BufferedImage(w, h,
BufferedImage.TYPE_INT_ARGB_PRE); BufferedImage.TYPE_INT_ARGB_PRE);
SurfaceData tmpData = SurfaceData.getPrimarySurfaceData(tmpimg); SurfaceData tmpData = SurfaceData.getPrimarySurfaceData(tmpimg);
SurfaceType tmpType = tmpData.getSurfaceType(); SurfaceType tmpType = tmpData.getSurfaceType();
MaskBlit tmpmaskblit = MaskBlit tmpmaskblit = MaskBlit.getFromCache(SurfaceType.IntArgbPre,
MaskBlit.getFromCache(SurfaceType.IntArgbPre,
CompositeType.SrcNoEa, CompositeType.SrcNoEa,
tmpType); tmpType);
/* /*
...@@ -531,7 +525,7 @@ public class DrawImage implements DrawImagePipe ...@@ -531,7 +525,7 @@ public class DrawImage implements DrawImagePipe
* *
* edges thus has to be h*2+2 in length * edges thus has to be h*2+2 in length
*/ */
int edges[] = new int[(dy2-dy1)*2+2]; final int[] edges = new int[h * 2 + 2];
// It is important that edges[0]=edges[1]=0 when we call // It is important that edges[0]=edges[1]=0 when we call
// Transform in case it must return early and we would // Transform in case it must return early and we would
// not want to render anything on an error condition. // not want to render anything on an error condition.
...@@ -539,35 +533,17 @@ public class DrawImage implements DrawImagePipe ...@@ -539,35 +533,17 @@ public class DrawImage implements DrawImagePipe
AlphaComposite.Src, null, AlphaComposite.Src, null,
itx, interpType, itx, interpType,
sx1, sy1, sx2, sy2, sx1, sy1, sx2, sy2,
0, 0, dx2-dx1, dy2-dy1, 0, 0, w, h,
edges, dx1, dy1); edges, dx1, dy1);
/* final Region region = Region.getInstance(dx1, dy1, dx2, dy2, edges);
* Now copy the results, scanline by scanline, into the dest. clip = clip.getIntersection(region);
* The edges array helps us minimize the work.
/* NOTE: We either have, or we can make,
* a Blit for any composite type, even Custom
*/ */
int index = 2; final Blit blit = Blit.getFromCache(tmpType, sg.imageComp, dstType);
for (int y = edges[0]; y < edges[1]; y++) { blit.Blit(tmpData, dstData, sg.composite, clip, 0, 0, dx1, dy1, w, h);
int relx1 = edges[index++];
int relx2 = edges[index++];
if (relx1 >= relx2) {
continue;
}
if (maskblit != null) {
maskblit.MaskBlit(tmpData, dstData,
sg.composite, clip,
relx1, y,
dx1+relx1, dy1+y,
relx2 - relx1, 1,
null, 0, 0);
} else {
blit.Blit(tmpData, dstData,
sg.composite, clip,
relx1, y,
dx1+relx1, dy1+y,
relx2 - relx1, 1);
}
}
} }
// Render an image using only integer translation // Render an image using only integer translation
......
...@@ -30,6 +30,8 @@ import java.awt.Shape; ...@@ -30,6 +30,8 @@ import java.awt.Shape;
import java.awt.geom.AffineTransform; import java.awt.geom.AffineTransform;
import java.awt.geom.RectangularShape; import java.awt.geom.RectangularShape;
import sun.java2d.loops.TransformHelper;
/** /**
* This class encapsulates a definition of a two dimensional region which * This class encapsulates a definition of a two dimensional region which
* consists of a number of Y ranges each containing multiple X bands. * consists of a number of Y ranges each containing multiple X bands.
...@@ -160,6 +162,15 @@ public class Region { ...@@ -160,6 +162,15 @@ public class Region {
this.hiy = hiy; this.hiy = hiy;
} }
private Region(int lox, int loy, int hix, int hiy, int[] bands, int end) {
this.lox = lox;
this.loy = loy;
this.hix = hix;
this.hiy = hiy;
this.bands = bands;
this.endIndex = end;
}
/** /**
* Returns a Region object covering the pixels which would be * Returns a Region object covering the pixels which would be
* touched by a fill or clip operation on a Graphics implementation * touched by a fill or clip operation on a Graphics implementation
...@@ -255,6 +266,44 @@ public class Region { ...@@ -255,6 +266,44 @@ public class Region {
} }
} }
/**
* Returns a Region object with a rectangle of interest specified by the
* indicated rectangular area in lox, loy, hix, hiy and edges array, which
* is located relative to the rectangular area. Edges array - 0,1 are y
* range, 2N,2N+1 are x ranges, 1 per y range.
*
* @see TransformHelper
*/
static Region getInstance(final int lox, final int loy, final int hix,
final int hiy, final int[] edges) {
final int y1 = edges[0];
final int y2 = edges[1];
if (hiy <= loy || hix <= lox || y2 <= y1) {
return EMPTY_REGION;
}
// rowsNum * (3 + 1 * 2)
final int[] bands = new int[(y2 - y1) * 5];
int end = 0;
int index = 2;
for (int y = y1; y < y2; ++y) {
final int spanlox = Math.max(clipAdd(lox, edges[index++]), lox);
final int spanhix = Math.min(clipAdd(lox, edges[index++]), hix);
if (spanlox < spanhix) {
final int spanloy = Math.max(clipAdd(loy, y), loy);
final int spanhiy = Math.min(clipAdd(spanloy, 1), hiy);
if (spanloy < spanhiy) {
bands[end++] = spanloy;
bands[end++] = spanhiy;
bands[end++] = 1; // 1 span per row
bands[end++] = spanlox;
bands[end++] = spanhix;
}
}
}
return end != 0 ? new Region(lox, loy, hix, hiy, bands, end)
: EMPTY_REGION;
}
/** /**
* Returns a Region object with a rectangle of interest specified * Returns a Region object with a rectangle of interest specified
* by the indicated Rectangle object. * by the indicated Rectangle object.
......
...@@ -46,6 +46,7 @@ public class Reflection { ...@@ -46,6 +46,7 @@ public class Reflection {
map.put(Reflection.class, map.put(Reflection.class,
new String[] {"fieldFilterMap", "methodFilterMap"}); new String[] {"fieldFilterMap", "methodFilterMap"});
map.put(System.class, new String[] {"security"}); map.put(System.class, new String[] {"security"});
map.put(Class.class, new String[] {"classLoader"});
fieldFilterMap = map; fieldFilterMap = map;
methodFilterMap = new HashMap<>(); methodFilterMap = new HashMap<>();
......
...@@ -674,6 +674,9 @@ OGLBlitLoops_Blit(JNIEnv *env, ...@@ -674,6 +674,9 @@ OGLBlitLoops_Blit(JNIEnv *env,
viaTexture = JNI_TRUE; viaTexture = JNI_TRUE;
break; break;
#endif #endif
case OGLC_VENDOR_INTEL:
viaTexture = JNI_TRUE;
break;
default: default:
// just use the glDrawPixels() codepath // just use the glDrawPixels() codepath
viaTexture = JNI_FALSE; viaTexture = JNI_FALSE;
......
...@@ -917,8 +917,8 @@ OGLContext_GetExtensionInfo(JNIEnv *env, jint *caps) ...@@ -917,8 +917,8 @@ OGLContext_GetExtensionInfo(JNIEnv *env, jint *caps)
vcap = OGLC_VENDOR_ATI; vcap = OGLC_VENDOR_ATI;
} else if (strncmp(vendor, "NVIDIA", 6) == 0) { } else if (strncmp(vendor, "NVIDIA", 6) == 0) {
vcap = OGLC_VENDOR_NVIDIA; vcap = OGLC_VENDOR_NVIDIA;
} else if (strncmp(vendor, "Sun", 3) == 0) { } else if (strncmp(vendor, "Intel", 5) == 0) {
vcap = OGLC_VENDOR_SUN; vcap = OGLC_VENDOR_INTEL;
} }
// REMIND: new in 7 - check if needs fixing // REMIND: new in 7 - check if needs fixing
*caps |= ((vcap & OGLC_VCAP_MASK) << OGLC_VCAP_OFFSET); *caps |= ((vcap & OGLC_VCAP_MASK) << OGLC_VCAP_OFFSET);
......
...@@ -152,7 +152,7 @@ typedef struct { ...@@ -152,7 +152,7 @@ typedef struct {
#define OGLC_VENDOR_OTHER 0 #define OGLC_VENDOR_OTHER 0
#define OGLC_VENDOR_ATI 1 #define OGLC_VENDOR_ATI 1
#define OGLC_VENDOR_NVIDIA 2 #define OGLC_VENDOR_NVIDIA 2
#define OGLC_VENDOR_SUN 3 #define OGLC_VENDOR_INTEL 3
#define OGLC_VCAP_MASK 0x3 #define OGLC_VCAP_MASK 0x3
#define OGLC_VCAP_OFFSET 24 #define OGLC_VCAP_OFFSET 24
......
...@@ -102,11 +102,11 @@ public final class XToolkit extends UNIXToolkit implements Runnable { ...@@ -102,11 +102,11 @@ public final class XToolkit extends UNIXToolkit implements Runnable {
static TreeMap winMap = new TreeMap(); static TreeMap winMap = new TreeMap();
static HashMap specialPeerMap = new HashMap(); static HashMap specialPeerMap = new HashMap();
static HashMap winToDispatcher = new HashMap(); static HashMap winToDispatcher = new HashMap();
private static long _display;
static UIDefaults uidefaults; static UIDefaults uidefaults;
static X11GraphicsEnvironment localEnv; static final X11GraphicsEnvironment localEnv;
static X11GraphicsDevice device; private static final X11GraphicsDevice device;
static final X11GraphicsConfig config; private static final X11GraphicsConfig config;
private static final long display;
static int awt_multiclick_time; static int awt_multiclick_time;
static boolean securityWarningEnabled; static boolean securityWarningEnabled;
...@@ -117,15 +117,16 @@ public final class XToolkit extends UNIXToolkit implements Runnable { ...@@ -117,15 +117,16 @@ public final class XToolkit extends UNIXToolkit implements Runnable {
static { static {
initSecurityWarning(); initSecurityWarning();
if (GraphicsEnvironment.isHeadless()) { if (GraphicsEnvironment.isHeadless()) {
localEnv = null;
device = null;
config = null; config = null;
display = 0;
} else { } else {
localEnv = (X11GraphicsEnvironment) GraphicsEnvironment localEnv = (X11GraphicsEnvironment) GraphicsEnvironment
.getLocalGraphicsEnvironment(); .getLocalGraphicsEnvironment();
device = (X11GraphicsDevice) localEnv.getDefaultScreenDevice(); device = (X11GraphicsDevice) localEnv.getDefaultScreenDevice();
config = (X11GraphicsConfig) (device.getDefaultConfiguration()); config = (X11GraphicsConfig) device.getDefaultConfiguration();
if (device != null) { display = device.getDisplay();
_display = device.getDisplay();
}
setupModifierMap(); setupModifierMap();
initIDs(); initIDs();
setBackingStoreType(); setBackingStoreType();
...@@ -196,10 +197,18 @@ public final class XToolkit extends UNIXToolkit implements Runnable { ...@@ -196,10 +197,18 @@ public final class XToolkit extends UNIXToolkit implements Runnable {
} }
} }
static Object displayLock = new Object(); /**
* Returns the X11 Display of the default screen device.
*
* @return X11 Display
* @throws AWTError thrown if local GraphicsEnvironment is null, which
* means we are in the headless environment
*/
public static long getDisplay() { public static long getDisplay() {
return _display; if (localEnv == null) {
throw new AWTError("Local GraphicsEnvironment must not be null");
}
return display;
} }
public static long getDefaultRootWindow() { public static long getDefaultRootWindow() {
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "appletviewer" "1" "2013年11月21日" "JDK 8" "基本ツール" .TH "appletviewer" "1" "2013年11月21日" "JDK 8" "基本ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "extcheck" "1" "2013年11月21日" "JDK 8" "基本ツール" .TH "extcheck" "1" "2013年11月21日" "JDK 8" "基本ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Java IDLおよびRMI-IIOPツール .\" SectDesc: Java IDLおよびRMI-IIOPツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "idlj" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール" .TH "idlj" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jar" "1" "2013年11月21日" "JDK 8" "基本ツール" .TH "jar" "1" "2013年11月21日" "JDK 8" "基本ツール"
...@@ -384,9 +385,7 @@ JAR ...@@ -384,9 +385,7 @@ JAR
.\} .\}
.SH "例" .SH "例"
.PP .PP
\fB例 1\fR \fB例 1 \fR冗長な出力による現在のディレクトリからのすべてのファイルの追加
.br
冗長な出力による現在のディレクトリからのすべてのファイルの追加
.RS 4 .RS 4
.sp .sp
.if n \{\ .if n \{\
...@@ -415,9 +414,7 @@ JAR ...@@ -415,9 +414,7 @@ JAR
.\} .\}
.RE .RE
.PP .PP
\fB例 2\fR \fB例 2 \fRサブディレクトリからのファイルの追加
.br
サブディレクトリからのファイルの追加
.RS 4 .RS 4
.sp .sp
.if n \{\ .if n \{\
...@@ -449,9 +446,7 @@ JAR ...@@ -449,9 +446,7 @@ JAR
.\} .\}
.RE .RE
.PP .PP
\fB例 3\fR \fB例 3 \fRJARのコンテンツのリスト
.br
JARのコンテンツのリスト
.RS 4 .RS 4
.sp .sp
.if n \{\ .if n \{\
...@@ -485,9 +480,7 @@ JAR ...@@ -485,9 +480,7 @@ JAR
.\} .\}
.RE .RE
.PP .PP
\fB例 4\fR \fB例 4 \fR索引の追加
.br
索引の追加
.RS 4 .RS 4
株式取引のアプリケーションの相互依存クラスを、\fBmain\&.jar\fR、\fBbuy\&.jar\fRおよび\fBsell\&.jar\fRの3つのJARファイルに分割する場合、\fBi\fRオプションを使用します。\fBmain\&.jar\fRマニフェスト内の\fBClass\-Path\fR属性を指定する場合、\fBi\fRオプションを使用して、アプリケーションのクラス・ロードの速度を向上できます。 株式取引のアプリケーションの相互依存クラスを、\fBmain\&.jar\fR、\fBbuy\&.jar\fRおよび\fBsell\&.jar\fRの3つのJARファイルに分割する場合、\fBi\fRオプションを使用します。\fBmain\&.jar\fRマニフェスト内の\fBClass\-Path\fR属性を指定する場合、\fBi\fRオプションを使用して、アプリケーションのクラス・ロードの速度を向上できます。
.sp .sp
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: セキュリティ・ツール .\" SectDesc: セキュリティ・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jarsigner" "1" "2013年11月21日" "JDK 8" "セキュリティ・ツール" .TH "jarsigner" "1" "2013年11月21日" "JDK 8" "セキュリティ・ツール"
...@@ -344,7 +345,7 @@ SHA256 ...@@ -344,7 +345,7 @@ SHA256
.PP .PP
これら2つのファイルのベース・ファイル名は、\fB\-sigFile\fRオプションの値から作成されます。たとえば、オプションが\fB\-sigFile MKSIGN\fRの場合、ファイルは\fBMKSIGN\&.SF\fRおよび\fBMKSIGN\&.DSA\fRという名前になります。 これら2つのファイルのベース・ファイル名は、\fB\-sigFile\fRオプションの値から作成されます。たとえば、オプションが\fB\-sigFile MKSIGN\fRの場合、ファイルは\fBMKSIGN\&.SF\fRおよび\fBMKSIGN\&.DSA\fRという名前になります。
.PP .PP
コマンド行で\fB\-sigfile\fRオプションを指定しなかった場合、\fB\&.SF\fRファイルと\fB\&.DSA\fRファイルのベース・ファイル名は、コマンド行で指定された別名の先頭の8文字をすべて大文字に変換したものになります。別名が8文字未満の場合は、別名がそのまま使用されます。別名に、署名ファイル名で使用できない文字が含まれている場合、ファイル名の作成時に、該当する文字が下線(_)文字に変換されます。有効な文字は、アルファベット、数字、下線およびハイフンです。 コマンド行で\fB\-sigfile\fRオプションを指定しなかった場合、\fB\&.SF\fRファイルと\fB\&.DSA\fRファイルのベース・ファイル名は、コマンド行で指定された別名の先頭の8文字をすべて大文字に変換したものになります。別名が8文字未満の場合は、別名がそのまま使用されます。別名に、署名ファイル名で使用できない文字が含まれている場合、ファイル名の作成時に、該当する文字がアンダースコア(_)文字に変換されます。有効な文字は、アルファベット、数字、アンダースコアおよびハイフンです。
.PP .PP
署名ファイル 署名ファイル
.PP .PP
...@@ -521,7 +522,7 @@ JAR ...@@ -521,7 +522,7 @@ JAR
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
イタリックまたは下線付きの項目(オプションの値)の実際の値は、指定する必要があります。 イタリックまたは下線付きの項目(オプションの値)の実際の値は、指定する必要があります。
.RE .RE
.sp .sp
.RS 4 .RS 4
...@@ -664,9 +665,9 @@ JAR ...@@ -664,9 +665,9 @@ JAR
.RS 4 .RS 4
生成された\fB\&.SF\fRファイルおよび\fB\&.DSA\fRファイルに使用するベース・ファイル名を指定します。たとえば、ファイルが\fBDUKESIGN\fRの場合、生成される\fB\&.SF\fRおよび\fB\&.DSA\fRファイルは、\fBDUKESIGN\&.SF\fRおよび\fBDUKESIGN\&.DSA\fRという名前で、署名付きJARファイルの\fBMETA\-INF\fRディレクトリに格納されます。 生成された\fB\&.SF\fRファイルおよび\fB\&.DSA\fRファイルに使用するベース・ファイル名を指定します。たとえば、ファイルが\fBDUKESIGN\fRの場合、生成される\fB\&.SF\fRおよび\fB\&.DSA\fRファイルは、\fBDUKESIGN\&.SF\fRおよび\fBDUKESIGN\&.DSA\fRという名前で、署名付きJARファイルの\fBMETA\-INF\fRディレクトリに格納されます。
.sp .sp
ファイル内の文字は、セット\fBa\-zA\-Z0\-9_\-\fRから指定される必要があります。アルファベット、数字、下線およびハイフン文字のみを使用できます。\fB\&.SF\fRおよび\fB\&.DSA\fRのファイル名では、小文字はすべて大文字に変換されます。 ファイル内の文字は、セット\fBa\-zA\-Z0\-9_\-\fRから指定される必要があります。アルファベット、数字、アンダースコアおよびハイフン文字のみを使用できます。\fB\&.SF\fRおよび\fB\&.DSA\fRのファイル名では、小文字はすべて大文字に変換されます。
.sp .sp
コマンド行で\fB\-sigfile\fRオプションを指定しなかった場合、\fB\&.SF\fRファイルと\fB\&.DSA\fRファイルのベース・ファイル名は、コマンド行で指定された別名の先頭の8文字をすべて大文字に変換したものになります。別名が8文字未満の場合は、別名がそのまま使用されます。別名に、署名ファイル名で無効な文字が含まれている場合、ファイル名を作成するために、該当する文字が下線(_)文字に変換されます。 コマンド行で\fB\-sigfile\fRオプションを指定しなかった場合、\fB\&.SF\fRファイルと\fB\&.DSA\fRファイルのベース・ファイル名は、コマンド行で指定された別名の先頭の8文字をすべて大文字に変換したものになります。別名が8文字未満の場合は、別名がそのまま使用されます。別名に、署名ファイル名で無効な文字が含まれている場合、ファイル名を作成するために、該当する文字がアンダースコア(_)文字に変換されます。
.RE .RE
.PP .PP
\-sigalg \fIalgorithm\fR \-sigalg \fIalgorithm\fR
...@@ -1001,7 +1002,7 @@ noTimestamp ...@@ -1001,7 +1002,7 @@ noTimestamp
.RE .RE
.\} .\}
.PP .PP
検証が成功すると、\fBjar verified\fRが表示されます。そうでない場合は、エラー・メッセージが表示されます。\fB\-verbose\fRオプションを使用すると、詳細情報を取得できます。\fBjarsigner\fRを\fB\-verbose\fRオプションとともに使用するサンプルを、次に示します。 検証が成功すると、\fBjar verified\fRが表示されます。有効でない場合は、エラー・メッセージが表示されます。\fB\-verbose\fRオプションを使用すると、詳細情報を取得できます。\fBjarsigner\fRを\fB\-verbose\fRオプションとともに使用するサンプルを、次に示します。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
......
...@@ -23,14 +23,15 @@ ...@@ -23,14 +23,15 @@
.\" .\"
.\" Title: java .\" Title: java
.\" Language: Japanese .\" Language: Japanese
.\" Date: 2014年8月8 .\" Date: 2015年3月3
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "java" "1" "2014年8月8日" "JDK 8" "基本ツール" .TH "java" "1" "2015年3月3日" "JDK 8" "基本ツール"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
...@@ -652,7 +653,7 @@ JIT ...@@ -652,7 +653,7 @@ JIT
.PP .PP
\-Xmx\fIsize\fR \-Xmx\fIsize\fR
.RS 4 .RS 4
メモリー割当てプールの最大サイズ(バイト単位)を指定します。指定する値は、2MBより大きい1024の倍数にする必要があります。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。デフォルト値は、実行時にシステム構成に基づいて選択されます。サーバー・デプロイメントでは、\fB\-Xms\fRおよび\fB\-Xmx\fRは通常同じ値に設定されます。詳細は、http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gc\-ergonomics\&.htmlにあるガベージ・コレクタ・エルゴノミックを参照してください。 メモリー割当てプールの最大サイズ(バイト単位)を指定します。指定する値は、2MBより大きい1024の倍数にする必要があります。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。デフォルト値は、実行時にシステム構成に基づいて選択されます。サーバー・デプロイメントでは、\fB\-Xms\fRおよび\fB\-Xmx\fRは通常同じ値に設定されます。http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gctuning/index\&.htmlの\fIJava SE HotSpot仮想マシンのガベージ・コレクション・チューニング・ガイド\fRのエルゴノミクスに関する項を参照してください。
.sp .sp
次の例では、割り当てられたメモリーの許可される最大サイズを様々な単位を使用して80MBに設定する方法を示します。 次の例では、割り当てられたメモリーの許可される最大サイズを様々な単位を使用して80MBに設定する方法を示します。
.sp .sp
...@@ -877,14 +878,14 @@ JVM ...@@ -877,14 +878,14 @@ JVM
.RS 4 .RS 4
バイトコード・ベリファイアのモードを設定します。バイトコードの検証は一部の問題のトラブルシューティングに役立ちますが、実行中のアプリケーションへのオーバーヘッドを増大させます。このオプションで使用可能な\fImode\fR引数は次のとおりです。 バイトコード・ベリファイアのモードを設定します。バイトコードの検証は一部の問題のトラブルシューティングに役立ちますが、実行中のアプリケーションへのオーバーヘッドを増大させます。このオプションで使用可能な\fImode\fR引数は次のとおりです。
.PP .PP
none なし
.RS 4 .RS 4
バイトコードを検証しません。これにより、起動時間が短縮され、Javaによって提供される保護も軽減されます。 バイトコードを検証しません。これにより、起動時間が短縮され、Javaによって提供される保護も軽減されます。
.RE .RE
.PP .PP
remote remote
.RS 4 .RS 4
ネットワークを介してリモートでロードされるクラスのみを検証します。これは、\fB\-Xverify\fRオプションを指定しない場合のデフォルトの動作です。 ブートストラップ・クラス・ローダーでロードされていないこれらのクラスを検証します。これは、\fB\-Xverify\fRオプションを指定しない場合のデフォルトの動作です。
.RE .RE
.PP .PP
all all
...@@ -938,9 +939,9 @@ JVM ...@@ -938,9 +939,9 @@ JVM
.PP .PP
\-XX:LargePageSizeInBytes=\fIsize\fR \-XX:LargePageSizeInBytes=\fIsize\fR
.RS 4 .RS 4
Javaヒープに使用される大きいページの最大サイズ(バイト単位)を設定します。\fIsize\fR引数は、2の累乗(2、4、8、16、\&.\&.\&.)である必要があります。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。デフォルトでは、サイズは0に設定され、これは、JVMでは大きいページのサイズが自動的に選択されていることを意味します。 Solarisでは、Javaヒープに使用されるラージ・ページの最大サイズ(バイト単位)を設定します。\fIsize\fR引数は、2の累乗(2、4、8、16、\&.\&.\&.)である必要があります。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。デフォルトでは、サイズは0に設定され、これは、JVMではラージ・ページのサイズが自動的に選択されていることを意味します。
.sp .sp
次の例では、大きいページのサイズを4メガバイト(MB)に設定する方法を示します。 次の例では、ラージ・ページのサイズを4メガバイト(MB)に設定する方法を示します。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
...@@ -995,6 +996,17 @@ JVM ...@@ -995,6 +996,17 @@ JVM
.RE .RE
.RE .RE
.PP .PP
\-XX:ObjectAlignmentInBytes=\fIalignment\fR
.RS 4
Javaオブジェクトのメモリー配置を設定します(バイト単位)。デフォルトでは、値が8バイトに設定されます。指定される値は、2の累乗にして8から256(両端を含む)の範囲内にする必要があります。このオプションにより、大きいJavaヒープ・サイズで圧縮ポインタを使用できます。
.sp
バイト単位のヒープ・サイズ制限は次のように計算されます:
.sp
\fB4GB * ObjectAlignmentInBytes\fR
.sp
注意: 配置の値が増えると、オブジェクト間の未使用の領域も増えます。結果として、大きいヒープ・サイズで圧縮ポインタを使用するメリットがわからない可能性があります。
.RE
.PP
\-XX:OnError=\fIstring\fR \-XX:OnError=\fIstring\fR
.RS 4 .RS 4
リカバリ不能なエラーが発生したときに実行する、カスタム・コマンドまたは一連のセミコロン区切りのコマンドを設定します。文字列に空白が含まれている場合は、引用符で囲む必要があります。 リカバリ不能なエラーが発生したときに実行する、カスタム・コマンドまたは一連のセミコロン区切りのコマンドを設定します。文字列に空白が含まれている場合は、引用符で囲む必要があります。
...@@ -1018,6 +1030,22 @@ JVM ...@@ -1018,6 +1030,22 @@ JVM
\fBOutOfMemoryError\fR例外が最初にスローされたときに実行する、カスタム・コマンドまたは一連のセミコロン区切りのコマンドを設定します。文字列に空白が含まれている場合は、引用符で囲む必要があります。コマンド文字列の例は、\fB\-XX:OnError\fRオプションの説明を参照してください。 \fBOutOfMemoryError\fR例外が最初にスローされたときに実行する、カスタム・コマンドまたは一連のセミコロン区切りのコマンドを設定します。文字列に空白が含まれている場合は、引用符で囲む必要があります。コマンド文字列の例は、\fB\-XX:OnError\fRオプションの説明を参照してください。
.RE .RE
.PP .PP
\-XX:+PerfDataSaveToFile
.RS 4
有効な場合、Javaアプリケーションの終了時にjstat(1)バイナリ・データを保存します。このバイナリ・データは\fBhsperfdata_\fR\fI<pid>\fRという名前のファイルに保存されます。\fI<pid>\fRは、実行したJavaアプリケーションのプロセス識別子です。次のように\fBjstat\fRを使用して、このファイルに含まれるパフォーマンス・データを表示します。
.sp
.if n \{\
.RS 4
.\}
.nf
\fBjstat \-class file:///\fR\fB\fI<path>\fR\fR\fB/hsperfdata_\fR\fB\fI<pid>\fR\fR
\fBjstat \-gc file:///\fR\fB\fI<path>\fR\fR\fB/hsperfdata_\fR\fB\fI<pid>\fR\fR
.fi
.if n \{\
.RE
.\}
.RE
.PP
\-XX:+PrintCommandLineFlags \-XX:+PrintCommandLineFlags
.RS 4 .RS 4
コマンド行に表示された、人間工学的に選択したJVMフラグの印刷を有効にします。これは、ヒープ領域サイズや選択されたガベージ・コレクタなど、JVMによって設定されたエルゴノミック値を確認する場合に役立ちます。デフォルトでは、このオプションは無効であり、フラグは印刷されません。 コマンド行に表示された、人間工学的に選択したJVMフラグの印刷を有効にします。これは、ヒープ領域サイズや選択されたガベージ・コレクタなど、JVMによって設定されたエルゴノミック値を確認する場合に役立ちます。デフォルトでは、このオプションは無効であり、フラグは印刷されません。
...@@ -1166,25 +1194,32 @@ Windows: ...@@ -1166,25 +1194,32 @@ Windows:
JVM内部シグナルの\fBSIGUSR1\fRおよび\fBSIGUSR2\fRのかわりに、代替シグナルの使用を有効にします。デフォルトでは、このオプションは無効であり、代替シグナルは使用されません。このオプションは\fB\-Xusealtsigs\fRと同等です。 JVM内部シグナルの\fBSIGUSR1\fRおよび\fBSIGUSR2\fRのかわりに、代替シグナルの使用を有効にします。デフォルトでは、このオプションは無効であり、代替シグナルは使用されません。このオプションは\fB\-Xusealtsigs\fRと同等です。
.RE .RE
.PP .PP
\-XX:+UseBiasedLocking \-XX:\-UseBiasedLocking
.RS 4 .RS 4
バイアス・ロックの使用を効にします。かなりの量の非競合の同期化がある一部のアプリケーションは、このフラグを有効にすると大幅な高速化が実現しますが、特定のパターンのロックがあるアプリケーションは、速度が低下することがあります。バイアス・ロックの方法の詳細は、http://www\&.oracle\&.com/technetwork/java/tuning\-139912\&.html#section4\&.2\&.5にあるJavaチューニングのホワイト・ペーパーの例を参照してください。 バイアス・ロックの使用を効にします。かなりの量の非競合の同期化がある一部のアプリケーションは、このフラグを有効にすると大幅な高速化が実現しますが、特定のパターンのロックがあるアプリケーションは、速度が低下することがあります。バイアス・ロックの方法の詳細は、http://www\&.oracle\&.com/technetwork/java/tuning\-139912\&.html#section4\&.2\&.5にあるJavaチューニングのホワイト・ペーパーの例を参照してください。
.sp .sp
デフォルトでは、このオプションは有効になっています。 デフォルトでは、このオプションは有効になっています。
.RE .RE
.PP .PP
\-XX:+UseCompressedOops \-XX:\-UseCompressedOops
.RS 4 .RS 4
圧縮されたポインタの使用を有効にします。このオプションを有効にすると、オブジェクト参照は、64ビットのポインタではなく32ビットのオフセットとして表され、これにより、32GBより小さいJavaヒープ・サイズのアプリケーションの実行時に、通常、パフォーマンスが向上します。このオプションは、64ビットのJVMでのみ機能します。 圧縮されたポインタの使用を無効にします。デフォルトではこのオプションが有効であり、Javaヒープ・サイズが32GBより小さい場合に圧縮ポインタが使用されます。このオプションを有効にすると、オブジェクト参照は、64ビットのポインタではなく32ビットのオフセットとして表され、これにより、32GBより小さいJavaヒープ・サイズのアプリケーションの実行時に、通常、パフォーマンスが向上します。このオプションは、64ビットのJVMでのみ機能します。
.sp .sp
デフォルトでは、このオプションは無効であり、圧縮ポインタは使用されません。 Javaヒープ・サイズが32GBより大きい場合にも圧縮ポインタを使用できます。\fB\-XX:ObjectAlignmentInBytes\fRオプションを参照してください。
.RE
.PP
\-XX:+UseHugeTLBFS
.RS 4
Linux用のこのオプションは、\fB\-XX:+UseLargePages\fRを指定するのと同じです。このオプションは、デフォルトでは無効になっています。このオプションは、メモリーの予約時にすべてのラージ・ページを事前に割り当てます。そのため、JVMはラージ・ページ・メモリー領域を動的に拡張または縮小できません。この動作を行う場合は、\fB\-XX:UseTransparentHugePages\fRを参照してください。
.sp
詳細は、"ラージ・ページ"を参照してください。
.RE .RE
.PP .PP
\-XX:+UseLargePages \-XX:+UseLargePages
.RS 4 .RS 4
大きいページのメモリーの使用を有効にします。このオプションはデフォルトで有効になっています。大きいページのメモリーの使用を無効にするには、\fB\-XX:\-UseLargePages\fRを指定します ラージ・ページのメモリーの使用を有効にします。デフォルトでは、このオプションは無効であり、ラージ・ページのメモリーは使用されません
.sp .sp
詳細は、http://www\&.oracle\&.com/technetwork/java/javase/tech/largememory\-jsp\-137182\&.htmlにある大きいメモリー・ページ用のJavaサポートを参照してください。 詳細は、"ラージ・ページ"を参照してください。
.RE .RE
.PP .PP
\-XX:+UseMembar \-XX:+UseMembar
...@@ -1197,6 +1232,13 @@ JVM ...@@ -1197,6 +1232,13 @@ JVM
\fBperfdata\fR機能を有効にします。このオプションはデフォルトで有効になっており、JVMのモニタリングおよびパフォーマンス・テストが可能になります。これを無効にすると、\fBhsperfdata_userid\fRディレクトリの作成を抑制します。\fBperfdata\fR機能を無効にするには、\fB\-XX:\-UsePerfData\fRを指定します。 \fBperfdata\fR機能を有効にします。このオプションはデフォルトで有効になっており、JVMのモニタリングおよびパフォーマンス・テストが可能になります。これを無効にすると、\fBhsperfdata_userid\fRディレクトリの作成を抑制します。\fBperfdata\fR機能を無効にするには、\fB\-XX:\-UsePerfData\fRを指定します。
.RE .RE
.PP .PP
\-XX:+UseTransparentHugePages
.RS 4
Linuxでは、動的に拡張または縮小できるラージ・ページの使用を有効化してください。このオプションは、デフォルトでは無効になっています。OSが他のページを移動してヒュージ・ページを作成するため、透過的ヒュージ・ページでパフォーマンスの問題が検出される場合があります。このオプションは試験的に使用できます。
.sp
詳細は、"ラージ・ページ"を参照してください。
.RE
.PP
\-XX:+AllowUserSignalHandlers \-XX:+AllowUserSignalHandlers
.RS 4 .RS 4
アプリケーションによるシグナル・ハンドラのインストールを有効にします。デフォルトでは、このオプションは無効であり、アプリケーションはシグナル・ハンドラをインストールすることは許可されていません。 アプリケーションによるシグナル・ハンドラのインストールを有効にします。デフォルトでは、このオプションは無効であり、アプリケーションはシグナル・ハンドラをインストールすることは許可されていません。
...@@ -1569,7 +1611,7 @@ JIT ...@@ -1569,7 +1611,7 @@ JIT
.PP .PP
\-XX:CompileThreshold=\fIinvocations\fR \-XX:CompileThreshold=\fIinvocations\fR
.RS 4 .RS 4
コンパイル前に解釈されたメソッド呼出しの数を設定します。デフォルトでは、サーバーJVMでは、JITコンパイラは、10,000の解釈されたメソッド呼出しを実行して、効率的なコンパイルのための情報を収集します。クライアントJVMの場合、デフォルト設定は1,500呼出しです。次の例では、解釈されたメソッド呼出しの数を5,000に設定する方法を示します。 コンパイル前に解釈されたメソッド呼出しの数を設定します。デフォルトでは、サーバーJVMでは、JITコンパイラは、10,000の解釈されたメソッド呼出しを実行して、効率的なコンパイルのための情報を収集します。クライアントJVMの場合、デフォルト設定は1,500呼出しです。層コンパイルが有効な場合、このオプションは無視されます。オプション\fB\-XX:+TieredCompilation\fRを参照してください。次の例では、解釈されたメソッド呼出しの数を5,000に設定する方法を示します。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
...@@ -1591,7 +1633,7 @@ JIT ...@@ -1591,7 +1633,7 @@ JIT
.PP .PP
\-XX:InitialCodeCacheSize=\fIsize\fR \-XX:InitialCodeCacheSize=\fIsize\fR
.RS 4 .RS 4
初期コード・キャッシュ・サイズ(バイト単位)を設定します。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。デフォルト値は500KBに設定されています。次の例では、初期コード・キャッシュ・サイズを32KBに設定する方法を示します。 初期コード・キャッシュ・サイズ(バイト単位)を設定します。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。デフォルト値は500KBに設定されています。初期コード・キャッシュ・サイズをシステムの最小メモリー・ページ・サイズより小さくしないでください。次の例では、初期コード・キャッシュ・サイズを32KBに設定する方法を示します。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
...@@ -1711,7 +1753,17 @@ JIT ...@@ -1711,7 +1753,17 @@ JIT
.PP .PP
\-XX:ReservedCodeCacheSize=\fIsize\fR \-XX:ReservedCodeCacheSize=\fIsize\fR
.RS 4 .RS 4
JITコンパイルされたコードの最大コード・キャッシュ・サイズ(バイト単位)を設定します。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。このオプションは\fB\-Xmaxjitcodesize\fRと同等です。 JITコンパイルされたコードの最大コード・キャッシュ・サイズ(バイト単位)を設定します。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。このオプションは2GBの制限があります。そうでない場合は、エラーが生成されます。最大コード・キャッシュ・サイズを初期コード・キャッシュ・サイズより小さくしないでください。\fB\-XX:InitialCodeCacheSize\fRオプションを参照してください。このオプションは\fB\-Xmaxjitcodesize\fRと同等です。
.RE
.PP
\-XX:RTMAbortRatio=\fIabort_ratio\fR
.RS 4
RTM中止率は、すべての実行済RTMトランザクションに対するパーセンテージ(%)として指定されます。中止されたトランザクション数がこの率を超えた場合、コンパイルされたコードが非最適化されます。この率は、\fB\-XX:+UseRTMDeopt\fRオプションが有効な場合に使用されます。このオプションのデフォルト値は50です。つまり、すべてのトランザクションの50%が中止された場合、コンパイルされたコードが非最適化されます。
.RE
.PP
\-XX:RTMRetryCount=\fInumber_of_retries\fR
.RS 4
中止またはビジーの場合、RTMロック・コードは、標準のロック・メカニズムにフォールバックする前にこのオプションによって指定された回数再試行されます。このオプションのデフォルト値は5です。\fB\-XX:UseRTMLocking\fRオプションを有効化する必要があります。
.RE .RE
.PP .PP
\-XX:+TieredCompilation \-XX:+TieredCompilation
...@@ -1751,39 +1803,52 @@ UseAES ...@@ -1751,39 +1803,52 @@ UseAES
カード表の更新前に、カードがすでにマークされているかどうかのチェックを有効にします。このオプションは、デフォルトでは無効になっており、複数のソケットを持つマシン上でのみ使用する必要があります。これにより、同時操作にかなり依存しているJavaアプリケーションのパフォーマンスが向上します。Java HotSpot Server VMのみが、このオプションをサポートしています。 カード表の更新前に、カードがすでにマークされているかどうかのチェックを有効にします。このオプションは、デフォルトでは無効になっており、複数のソケットを持つマシン上でのみ使用する必要があります。これにより、同時操作にかなり依存しているJavaアプリケーションのパフォーマンスが向上します。Java HotSpot Server VMのみが、このオプションをサポートしています。
.RE .RE
.PP .PP
\-XX:+UseSuperWord \-XX:+UseRTMDeopt
.RS 4 .RS 4
スカラー演算のスーパーワード演算への変換を有効にします。このオプションはデフォルトで有効になっています。スカラー演算のスーパーワード演算への変換を無効にするには、\fB\-XX:\-UseSuperWord\fRを指定します。Java HotSpot Server VMのみが、このオプションをサポートしています。 中止率に応じて、RTMロックを自動調整します。この率は、\fB\-XX:RTMAbortRatio\fRオプションによって指定されます。中止されたトランザクション数が中止率を超えた場合、ロックを含むメソッドがすべてのロックで標準のロックとして非最適化および再コンパイルされます。このオプションは、デフォルトでは無効になっています。\fB\-XX:+UseRTMLocking\fRオプションを有効化する必要があります。
.RE .RE
.SS "試験的なJITコンパイラ・オプション"
.PP .PP
この項のRestricted Transactional Memory (RTM)のロック機能に関連するオプションは試験的なもので、Java SE 8u20で正式にサポートされていません。これらを使用するには、\fB\-XX:+UnlockExperimentalVMOptions\fRオプションを有効化する必要があります。これらのオプションは、Transactional Synchronization Extensions (TSX)をサポートするx86 CPU上のJava HotSpot Server VMに対してのみ使用可能です。 \-XX:+UseRTMLocking
.RS 4
フォールバック・ハンドラとして標準のロック・メカニズムを使用して、展開されたすべてのロックに対してRestricted Transactional Memory (RTM)ロック・コードを生成します。このオプションは、デフォルトでは無効になっています。RTMに関連するオプションは、Transactional Synchronization Extensions (TSX)をサポートするx86 CPU上のJava HotSpot Server VMに対してのみ使用可能です。
.sp
RTMは、x86命令セット拡張でマルチスレッド・アプリケーションの作成を容易にするIntelのTSXの一部です。RTMでは、新しい命令
\fBXBEGIN\fR、\fBXABORT\fR、\fBXEND\fRおよび\fBXTEST\fRが導入されています。\fBXBEGIN\fRおよび\fBXEND\fR命令は、トランザクションとして実行するための命令セットを囲みます。トランザクションの実行時に競合が見つからなかった場合、メモリーとレジスタの変更が、\fBXEND\fR命令で同時にコミットされます。\fBXABORT\fR命令ではトランザクションを明示的に中止でき、\fBXEND\fR命令では命令セットがトランザクション内で実行中かどうかを確認できます。
.sp
トランザクションのロックは、別のスレッドが同じトランザクションにアクセスしようとしたときに展開されます。したがって、そのトランザクションへのアクセスを最初にリクエストしなかったスレッドはブロックされます。RTMでは、トランザクションが中止または失敗した場合のために、フォールバックの操作セットを指定する必要があります。RTMロックとは、TSXのシステムに委譲されているロックです。
.sp
RTMにより、重要なリージョンにおいて衝突が少なく競合度の高いロックのパフォーマンスが向上されます(これは、複数のスレッドによって同時にアクセスできないコードです)。また、RTMにより、粗粒度ロックのパフォーマンスも向上されますが、一般的にマルチスレッド・アプリケーションでのパフォーマンスはよくありません。(粗粒度ロックとは、ロックの取得および解放のオーバーヘッドを最小化するために長い期間ロックを保持する戦略であり、一方、細粒度ロックとは必要な場合のみロックし可能なかぎり早期にロック解除することで最大限の並行処理の達成を試みる戦略です。)さらに、異なるスレッドによって使用されている軽度な競合ロックの場合、RTMにより、誤ったキャッシュ・ライン共有(キャッシュ・ライン・ピンポンとも呼ばれる)を削減できます。これは、異なるプロセッサからの複数のスレッドが異なるリソースにアクセスしている場合に発生しますが、リソースは同じキャッシュ・ラインを共有します。結果として、プロセッサは他のプロセッサのキャッシュ・ラインを繰り返し無効にし、これにより、キャッシュではなくメイン・メモリーからの読取りが強制されます。
.RE
.PP .PP
\-XX:RTMAbortRatio=\fIabort_ratio\fR \-XX:+UseSHA
.RS 4 .RS 4
RTM中止率は、すべての実行済RTMトランザクションに対するパーセンテージ(%)として指定されます。中止されたトランザクション数がこの率を超えた場合、コンパイルされたコードが非最適化されます。この率は、\fB\-XX:+UseRTMDeopt\fRオプションが有効な場合に使用されます。このオプションのデフォルト値は50です。つまり、すべてのトランザクションの50%が中止された場合、コンパイルされたコードが非最適化されます。 SPARCハードウェアのSHA暗号化ハッシュ関数のハードウェアベースの組込みを有効にします。\fBUseSHA\fRは、\fBUseSHA1Intrinsics\fR、\fBUseSHA256Intrinsics\fRおよび\fBUseSHA512Intrinsics\fRオプションと組み合せて使用します。
.sp
\fBUseSHA\fRおよび\fBUseSHA*Intrinsics\fRフラグはデフォルトで有効であり、SPARC T4以上のJava HotSpot Server VM 64ビットでのみサポートされます。
.sp
SHA操作に対して\fBsun\&.security\&.provider\&.Sun\fRプロバイダを使用する場合のみ、この機能を適用できます。
.sp
すべてのハードウェアベースのSHA組込みを無効化するには、\fB\-XX:\-UseSHA\fRを指定してください。特定のSHA組込みのみ無効化するには、適切な対応するオプションを使用してください。たとえば、\fB\-XX:\-UseSHA256Intrinsics\fRなどです。
.RE .RE
.PP .PP
\-XX:RTMRetryCount=\fInumber_of_retries\fR \-XX:+UseSHA1Intrinsics
.RS 4 .RS 4
中止またはビジーの場合、RTMロック・コードは、標準のロック・メカニズムにフォールバックする前にこのオプションによって指定された回数再試行されます。このオプションのデフォルト値は5です。\fB\-XX:UseRTMLocking\fRオプションを有効化する必要があります。 SHA\-1暗号化ハッシュ関数の組込みを有効にします。
.RE .RE
.PP .PP
\-XX:+UseRTMDeopt \-XX:+UseSHA256Intrinsics
.RS 4 .RS 4
中止率に応じて、RTMロックを自動調整します。この率は、\fB\-XX:RTMAbortRatio\fRオプションによって指定されます。中止されたトランザクション数が中止率を超えた場合、ロックを含むメソッドがすべてのロックで標準のロックとして非最適化および再コンパイルされます。このオプションは、デフォルトでは無効になっています。\fB\-XX:UseRTMLocking\fRオプションを有効化する必要があります。 SHA\-224およびSHA\-256暗号化ハッシュ関数の組込みを有効にします。
.RE .RE
.PP .PP
\-XX:+UseRTMLocking \-XX:+UseSHA512Intrinsics
.RS 4 .RS 4
フォールバック・ハンドラとして標準のロック・メカニズムを使用して、展開されたすべてのロックに対してRestricted Transactional Memory (RTM)ロック・コードを生成します。このオプションは、デフォルトでは無効になっています。 SHA\-384およびSHA\-512暗号化ハッシュ関数の組込みを有効にします。
.sp .RE
RTMは、x86命令セット拡張でマルチスレッド・アプリケーションの作成を容易にするIntelのTransactional Synchronization Extensions (TSX)の一部です。RTMでは、新しい命令 .PP
\fBXBEGIN\fR、\fBXABORT\fR、\fBXEND\fRおよび\fBXTEST\fRが導入されています。\fBXBEGIN\fRおよび\fBXEND\fR命令は、トランザクションとして実行するための命令セットを囲みます。トランザクションの実行時に競合が見つからなかった場合、メモリーとレジスタの変更が、\fBXEND\fR命令で同時にコミットされます。\fBXABORT\fR命令ではトランザクションを明示的に中止でき、\fBXEND\fR命令では命令セットがトランザクション内で実行中かどうかを確認できます。 \-XX:+UseSuperWord
.sp .RS 4
トランザクションのロックは、別のスレッドが同じトランザクションにアクセスしようとしたときに展開されます。したがって、そのトランザクションへのアクセスを最初にリクエストしなかったスレッドはブロックされます。RTMでは、トランザクションが中止または失敗した場合のために、フォールバックの操作セットを指定する必要があります。RTMロックとは、TSXのシステムに委譲されているロックです。 スカラー演算のスーパーワード演算への変換を有効にします。このオプションはデフォルトで有効になっています。スカラー演算のスーパーワード演算への変換を無効にするには、\fB\-XX:\-UseSuperWord\fRを指定します。Java HotSpot Server VMのみが、このオプションをサポートしています。
.sp
RTMにより、重要なリージョンにおいて衝突が少なく競合度の高いロックのパフォーマンスが向上されます(これは、複数のスレッドによって同時にアクセスできないコードです)。また、RTMにより、粗粒度ロックのパフォーマンスも向上されますが、一般的にマルチスレッド・アプリケーションでのパフォーマンスはよくありません。(粗粒度ロックとは、ロックの取得および解放のオーバーヘッドを最小化するために長い期間ロックを保持する戦略であり、一方、細粒度ロックとは必要な場合のみロックし可能なかぎり早期にロック解除することで最大限の並行処理の達成を試みる戦略です。)さらに、異なるスレッドによって使用されている軽度な競合ロックの場合、RTMにより、誤ったキャッシュ・ライン共有(キャッシュ・ライン・ピンポンとも呼ばれる)を削減できます。これは、異なるプロセッサからの複数のスレッドが異なるリソースにアクセスしている場合に発生しますが、リソースは同じキャッシュ・ラインを共有します。結果として、プロセッサは他のプロセッサのキャッシュ・ラインを繰り返し無効にし、これにより、キャッシュではなくメイン・メモリーからの読取りが強制されます。
.RE .RE
.SS "高度なサービスアビリティ・オプション" .SS "高度なサービスアビリティ・オプション"
.PP .PP
...@@ -1855,7 +1920,7 @@ RTM ...@@ -1855,7 +1920,7 @@ RTM
.PP .PP
\-XX:+PrintConcurrentLocks \-XX:+PrintConcurrentLocks
.RS 4 .RS 4
次の印刷を有効化します: j ロック(次の後) \- イベント。デフォルトでは、このオプションは無効です。 印刷を有効にします ロック(次の後) \- イベント。デフォルトでは、このオプションは無効です。
.sp .sp
\fB[Control]+[C]\fRイベント(\fBSIGTERM\fR)後に\fBjava\&.util\&.concurrent\fRロックの印刷を有効にします。デフォルトでは、このオプションは無効です。 \fB[Control]+[C]\fRイベント(\fBSIGTERM\fR)後に\fBjava\&.util\&.concurrent\fRロックの印刷を有効にします。デフォルトでは、このオプションは無効です。
.sp .sp
...@@ -2018,7 +2083,7 @@ G1 ...@@ -2018,7 +2083,7 @@ G1
.PP .PP
\-XX:InitialHeapSize=\fIsize\fR \-XX:InitialHeapSize=\fIsize\fR
.RS 4 .RS 4
メモリー割当てプールの初期サイズ(バイト単位)を設定します。指定する値は、0、または1MBより大きい1024の倍数のいずれかにする必要があります。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。デフォルト値は、実行時にシステム構成に基づいて選択されます。詳細は、http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gc\-ergonomics\&.htmlにあるガベージ・コレクタ・エルゴノミックを参照してください。 メモリー割当てプールの初期サイズ(バイト単位)を設定します。指定する値は、0、または1MBより大きい1024の倍数のいずれかにする必要があります。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。デフォルト値は、実行時にシステム構成に基づいて選択されます。http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gctuning/index\&.htmlの\fIJava SE HotSpot仮想マシンのガベージ・コレクション・チューニング・ガイド\fRのエルゴノミクスに関する項を参照してください。
.sp .sp
次の例では、割り当てられたメモリーのサイズを様々な単位を使用して6MBに設定する方法を示します。 次の例では、割り当てられたメモリーのサイズを様々な単位を使用して6MBに設定する方法を示します。
.sp .sp
...@@ -2109,7 +2174,7 @@ G1 ...@@ -2109,7 +2174,7 @@ G1
.PP .PP
\-XX:MaxHeapSize=\fIsize\fR \-XX:MaxHeapSize=\fIsize\fR
.RS 4 .RS 4
メモリー割当てプールの最大サイズ(バイト単位)を設定します。指定する値は、2MBより大きい1024の倍数にする必要があります。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。デフォルト値は、実行時にシステム構成に基づいて選択されます。サーバー・デプロイメントでは、\fB\-XX:InitialHeapSize\fRおよび\fB\-XX:MaxHeapSize\fRは通常同じ値に設定されます。詳細は、http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gc\-ergonomics\&.htmlにあるガベージ・コレクタ・エルゴノミックを参照してください。 メモリー割当てプールの最大サイズ(バイト単位)を設定します。指定する値は、2MBより大きい1024の倍数にする必要があります。キロバイトを示す場合は文字\fBk\fRまたは\fBK\fR、メガバイトを示す場合は文字\fBm\fRまたは\fBM\fR、ギガバイトを示す場合は文字\fBg\fRまたは\fBG\fRを追加します。デフォルト値は、実行時にシステム構成に基づいて選択されます。サーバー・デプロイメントでは、\fB\-XX:InitialHeapSize\fRおよび\fB\-XX:MaxHeapSize\fRは通常同じ値に設定されます。http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gctuning/index\&.htmlの\fIJava SE HotSpot仮想マシンのガベージ・コレクション・チューニング・ガイド\fRのエルゴノミクスに関する項を参照してください。
.sp .sp
次の例では、割り当てられたメモリーの許可される最大サイズを様々な単位を使用して80MBに設定する方法を示します。 次の例では、割り当てられたメモリーの許可される最大サイズを様々な単位を使用して80MBに設定する方法を示します。
.sp .sp
...@@ -2480,6 +2545,13 @@ CMS ...@@ -2480,6 +2545,13 @@ CMS
シリアル・ガベージ・コレクタの使用を有効にします。ガベージ・コレクションから特別な機能を必要としない、小規模で単純なアプリケーションの場合には、これは一般に最適な選択です。デフォルトでは、このオプションは無効になっており、コレクタは、マシンの構成およびJVMのタイプに基づいて、自動的に選択されます。 シリアル・ガベージ・コレクタの使用を有効にします。ガベージ・コレクションから特別な機能を必要としない、小規模で単純なアプリケーションの場合には、これは一般に最適な選択です。デフォルトでは、このオプションは無効になっており、コレクタは、マシンの構成およびJVMのタイプに基づいて、自動的に選択されます。
.RE .RE
.PP .PP
\-XX:+UseSHM
.RS 4
Linuxでは、JVMで共有メモリーを使用してラージ・ページを設定できるようにします。
.sp
詳細は、"ラージ・ページ"を参照してください。
.RE
.PP
\-XX:+UseStringDeduplication \-XX:+UseStringDeduplication
.RS 4 .RS 4
文字列の重複除外を有効化します。デフォルトでは、このオプションは無効です。このオプションを使用するには、ガベージファースト(G1)・ガベージ・コレクタを有効にする必要があります。\fB\-XX:+UseG1GC\fRオプションを参照してください。 文字列の重複除外を有効化します。デフォルトでは、このオプションは無効です。このオプションを使用するには、ガベージファースト(G1)・ガベージ・コレクタを有効にする必要があります。\fB\-XX:+UseG1GC\fRオプションを参照してください。
...@@ -2502,7 +2574,7 @@ CMS ...@@ -2502,7 +2574,7 @@ CMS
.PP .PP
\-Xrun\fIlibname\fR \-Xrun\fIlibname\fR
.RS 4 .RS 4
指定したデバッグ/プロファイのライブラリをロードします。このオプションは、\fB\-agentlib\fRオプションに取って代わられました。 指定したデバッグ/プロファイリングのライブラリをロードします。このオプションは、\fB\-agentlib\fRオプションに取って代わられました。
.RE .RE
.PP .PP
\-XX:CMSIncrementalDutyCycle=\fIpercent\fR \-XX:CMSIncrementalDutyCycle=\fIpercent\fR
...@@ -2563,9 +2635,7 @@ GC ...@@ -2563,9 +2635,7 @@ GC
.PP .PP
次の例では、スループットの最適化またはレスポンス時間の短縮化のいずれかを行うための、試験的なチューニング・フラグの使用方法を示します。 次の例では、スループットの最適化またはレスポンス時間の短縮化のいずれかを行うための、試験的なチューニング・フラグの使用方法を示します。
.PP .PP
\fB例 1\fR \fB例 1 \fRスループットを向上するためのチューニング
.br
スループットを向上するためのチューニング
.RS 4 .RS 4
.sp .sp
.if n \{\ .if n \{\
...@@ -2580,9 +2650,7 @@ GC ...@@ -2580,9 +2650,7 @@ GC
.\} .\}
.RE .RE
.PP .PP
\fB例 2\fR \fB例 2 \fRレスポンス時間を速くするためのチューニング
.br
レスポンス時間を速くするためのチューニング
.RS 4 .RS 4
.sp .sp
.if n \{\ .if n \{\
...@@ -2596,6 +2664,188 @@ GC ...@@ -2596,6 +2664,188 @@ GC
.RE .RE
.\} .\}
.RE .RE
.SH "ラージ・ページ"
.PP
ヒュージ・ページとも呼ばれるラージ・ページは、標準のメモリー・ページ・サイズ(プロセッサおよびオペレーティング・システムによって異なります)よりはるかに大きいメモリー・ページです。ラージ・ページは、プロセッサのTranslation\-Lookaside Bufferを最適化します。
.PP
Translation\-Lookaside Buffer (TLB)は、最近使用された仮想から物理へのアドレス変換を保持するページ変換キャッシュです。TLBは、少ないシステム・リソースです。プロセッサが複数のメモリー・アクセスが必要な場合のある階層ページ表から読み取る必要があるため、TLBミスは負荷がかかる可能性があります。大きいメモリー・ページ・サイズを使用して、単一のTLBエントリで大きいメモリー範囲を表すことができます。TLB不足が少なくなり、メモリー集約型のアプリケーションのパフォーマンスが向上する可能性があります。
.PP
ただし、ラージ・ページのページ・メモリーは、システムのパフォーマンスに悪影響を与える場合があります。たとえば、大量のメモリーがアプリケーションで確保される場合、通常メモリー不足や他のアプリケーションの過剰なページングが発生し、システム全体が遅くなる可能性があります。また、長時間稼働しているシステムは、過剰な断片化が発生する可能性があります。これにより、十分な大きさのページ・メモリーを予約できない可能性があります。これが発生した場合、OSまたはJVMのいずれかが通常のページの使用に戻ります。
.SS "ラージ・ページのサポート"
.PP
SolarisおよびLinuxは、ラージ・ページをサポートします。
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBSolaris\fR
.RS 4
.PP
Solaris 9以上には、Multiple Page Size Support(MPSS)が含まれています。追加の構成は必要ありません。http://www\&.oracle\&.com/technetwork/server\-storage/solaris10/overview/solaris9\-features\-scalability\-135663\&.htmlを参照してください。
.RE
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBLinux\fR
.RS 4
.PP
2\&.6カーネルは、ラージ・ページをサポートします。一部のベンダーは、2\&.4ベースのリリースのコードをバックポートしています。システムがラージ・ページ・メモリーをサポートしているかどうかを確認するには、次を試行してください:
.sp
.if n \{\
.RS 4
.\}
.nf
\fB# cat /proc/meminfo | grep Huge\fR
\fBHugePages_Total: 0\fR
\fBHugePages_Free: 0\fR
\fBHugepagesize: 2048 kB\fR
.fi
.if n \{\
.RE
.\}
.PP
出力に3つの"Huge"変数が示されている場合、システムはラージ・ページ・メモリーをサポートしていますが、構成する必要があります。コマンドが何も出力しない場合、システムはラージ・ページをサポートしていません。ラージ・ページ・メモリーを使用するシステムを構成するには、\fBroot\fRとしてログインして、次の手順を実行してください:
.sp
.RS 4
.ie n \{\
\h'-04' 1.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 1." 4.2
.\}
オプション\fB\-XX:+UseSHM\fR(\fB\-XX:+UseHugeTLBFS\fRのかわり)を使用する場合、\fBSHMMAX\fR値を増やしてください。Javaヒープ・サイズより大きくする必要があります。4GB以下の物理RAMを使用したシステムで、次によりすべてのメモリーが共有可能になります:
.sp
.if n \{\
.RS 4
.\}
.nf
\fB# echo 4294967295 > /proc/sys/kernel/shmmax\fR
.fi
.if n \{\
.RE
.\}
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 2.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 2." 4.2
.\}
オプション\fB\-XX:+UseSHM\fRまたは\fB\-XX:+UseHugeTLBFS\fRを使用する場合、ラージ・ページの数を指定してください。次の例では、4GBシステムの3GBがラージ・ページに予約されます(2048KBのラージ・ページ・サイズを仮定する場合、3GB = 3 * 1024MB = 3072MB = 3072 * 1024KB = 3145728KB and 3145728KB / 2048KB = 1536):
.sp
.if n \{\
.RS 4
.\}
.nf
\fB# echo 1536 > /proc/sys/vm/nr_hugepages\fR
.fi
.if n \{\
.RE
.\}
.RE
.if n \{\
.sp
.\}
.RS 4
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB注記\fR
.ps -1
.br
.TS
allbox tab(:);
l.
T{
注意
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
システムを再起動した後に\fB/proc\fRに含まれる値がリセットされるので注意してください。そのため、初期化スクリプト(\fBrc\&.local\fRや\fBsysctl\&.conf\fRなど)で設定できます。
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
OSカーネル・パラメータ\fB/proc/sys/kernel/shmmax\fRまたは\fB/proc/sys/vm/nr_hugepages\fRを構成(またはサイズ変更)する場合、JavaプロセスがJavaヒープ以外の領域に対してラージ・ページを割り当てることがあります。これらの手順を使用して、次の領域に対してラージ・ページを割り当てることができます:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Javaヒープ
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Permanent世代
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
コード・キャッシュ
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
パラレルGCのマーキング・ビットマップ・データ構造
.RE
.sp
その結果、Javaヒープのサイズに\fBnr_hugepages\fRパラメータを構成すると、領域のサイズが非常に大きいためにJVMがPermanent世代およびラージ・ページのコード・キャッシュ領域の割当てに失敗する場合があります。
.RE
T}
.TE
.sp 1
.sp .5v
.RE
.RE
.SH "終了ステータス" .SH "終了ステータス"
.PP .PP
通常、次の終了値が起動ツールから返されるのは、起動元が不正な引数で呼び出されたか、深刻なエラーが発生したか、あるいはJVMにより例外がスローされた場合です。ただし、Javaアプリケーションは、API呼出し\fBSystem\&.exit(exitValue)\fRを使用して任意の値を返すことを選択することもできます。値は次のとおりです。 通常、次の終了値が起動ツールから返されるのは、起動元が不正な引数で呼び出されたか、深刻なエラーが発生したか、あるいはJVMにより例外がスローされた場合です。ただし、Javaアプリケーションは、API呼出し\fBSystem\&.exit(exitValue)\fRを使用して任意の値を返すことを選択することもできます。値は次のとおりです。
...@@ -2666,6 +2916,17 @@ javah(1) ...@@ -2666,6 +2916,17 @@ javah(1)
.\} .\}
jar(1) jar(1)
.RE .RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
jstat(1)
.RE
.br .br
'pl 8.5i 'pl 8.5i
'bp 'bp
...@@ -23,14 +23,15 @@ ...@@ -23,14 +23,15 @@
.\" .\"
.\" Title: javac .\" Title: javac
.\" Language: Japanese .\" Language: Japanese
.\" Date: 2014年8月8 .\" Date: 2015年3月3
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "javac" "1" "2014年8月8日" "JDK 8" "基本ツール" .TH "javac" "1" "2015年3月3日" "JDK 8" "基本ツール"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
...@@ -154,7 +155,7 @@ javac \- Java ...@@ -154,7 +155,7 @@ javac \- Java
.PP .PP
\-cp \fIpath\fR or \-classpath \fIpath\fR \-cp \fIpath\fR or \-classpath \fIpath\fR
.RS 4 .RS 4
ユーザー・クラス・ファイル、および(オプションで)注釈プロセッサとソース・ファイルを検索する場所を指定します。このクラス・パスは\fBCLASSPATH\fR環境変数のユーザー・クラス・パスをオーバーライドします。\fBCLASSPATH\fR、\fB\-cp\fR、\fB\-classpath\fRのいずれも指定されていない場合、ユーザーの\fIクラス・パス\fRは、現在のディレクトリになります。Setting the Class Path を参照してください。 ユーザー・クラス・ファイル、および(オプションで)注釈プロセッサとソース・ファイルを検索する場所を指定します。このクラス・パスは\fBCLASSPATH\fR環境変数のユーザー・クラス・パスをオーバーライドします。\fBCLASSPATH\fR、\fB\-cp\fR、\fB\-classpath\fRのいずれも指定されていない場合、ユーザーの\fIクラス・パス\fRは、現在のディレクトリになります。クラス・パスの設定 を参照してください。
.sp .sp
\fB\-sourcepath\fRオプションが指定されていない場合、ソース・ファイルもユーザー・クラス・パスから検索されます。 \fB\-sourcepath\fRオプションが指定されていない場合、ソース・ファイルもユーザー・クラス・パスから検索されます。
.sp .sp
...@@ -1122,9 +1123,7 @@ varargs ...@@ -1122,9 +1123,7 @@ varargs
.PP .PP
\fBjavac\fRコマンドを実行するときに、各引数ファイルのパスと名前の先頭にアットマーク(@)文字を付けて渡します。\fBjavac\fRコマンドは、アットマーク(@)で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。 \fBjavac\fRコマンドを実行するときに、各引数ファイルのパスと名前の先頭にアットマーク(@)文字を付けて渡します。\fBjavac\fRコマンドは、アットマーク(@)で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。
.PP .PP
\fB例 1\fR \fB例 1 \fR単一の引数ファイル
.br
単一の引数ファイル
.RS 4 .RS 4
\fBargfile\fRという名前の単一の引数ファイルを使用して、すべての\fBjavac\fR引数を格納する場合は、次のように指定します。 \fBargfile\fRという名前の単一の引数ファイルを使用して、すべての\fBjavac\fR引数を格納する場合は、次のように指定します。
.sp .sp
...@@ -1141,9 +1140,7 @@ varargs ...@@ -1141,9 +1140,7 @@ varargs
この引数ファイルには、例2で示されている両方のファイルの内容を入れることができます。 この引数ファイルには、例2で示されている両方のファイルの内容を入れることができます。
.RE .RE
.PP .PP
\fB例 2\fR \fB例 2 \fR2つの引数ファイル
.br
2つの引数ファイル
.RS 4 .RS 4
\fBjavac\fRオプション用とソース・ファイル名用に、2つの引数ファイルを作成できます。次のリストには、行の継続文字はありません。 \fBjavac\fRオプション用とソース・ファイル名用に、2つの引数ファイルを作成できます。次のリストには、行の継続文字はありません。
.sp .sp
...@@ -1216,9 +1213,7 @@ varargs ...@@ -1216,9 +1213,7 @@ varargs
.\} .\}
.RE .RE
.PP .PP
\fB例 3\fR \fB例 3 \fRパスを使用した引数ファイル
.br
パスを使用した引数ファイル
.RS 4 .RS 4
引数ファイルはパスを指定できますが、ファイル内のすべてのファイル名は、(\fBpath1\fRや\fBpath2\fRではなく)次のように現在の作業ディレクトリに相対的となります。 引数ファイルはパスを指定できますが、ファイル内のすべてのファイル名は、(\fBpath1\fRや\fBpath2\fRではなく)次のように現在の作業ディレクトリに相対的となります。
.sp .sp
...@@ -1317,9 +1312,7 @@ varargs ...@@ -1317,9 +1312,7 @@ varargs
名前が\fBcom\&.sun\&.tools\&.javac\fRで始まるパッケージ(\fBcom\&.sun\&.tools\&.javac\fRのサブパッケージ)で検出される他のすべてのクラスおよびメソッドは、完全に内部用であり、いつでも変更される可能性があります。 名前が\fBcom\&.sun\&.tools\&.javac\fRで始まるパッケージ(\fBcom\&.sun\&.tools\&.javac\fRのサブパッケージ)で検出される他のすべてのクラスおよびメソッドは、完全に内部用であり、いつでも変更される可能性があります。
.SH "例" .SH "例"
.PP .PP
\fB例 1\fR \fB例 1 \fR簡単なプログラムのコンパイル
.br
簡単なプログラムのコンパイル
.RS 4 .RS 4
この例では、greetingsディレクトリで\fBHello\&.java\fRソース・ファイルをコンパイルする方法を示しています。\fBHello\&.java\fRで定義されたクラスは、\fBgreetings\&.Hello\fRと呼ばれます。greetingsディレクトリは、ソース・ファイルとクラス・ファイルの両方があるパッケージ・ディレクトリで、現在のディレクトリのすぐ下にあります。これにより、デフォルトのユーザー・クラス・パスを使用できるようになります。また、\fB\-d\fRオプションを使用して別の出力先ディレクトリを指定する必要もありません。 この例では、greetingsディレクトリで\fBHello\&.java\fRソース・ファイルをコンパイルする方法を示しています。\fBHello\&.java\fRで定義されたクラスは、\fBgreetings\&.Hello\fRと呼ばれます。greetingsディレクトリは、ソース・ファイルとクラス・ファイルの両方があるパッケージ・ディレクトリで、現在のディレクトリのすぐ下にあります。これにより、デフォルトのユーザー・クラス・パスを使用できるようになります。また、\fB\-d\fRオプションを使用して別の出力先ディレクトリを指定する必要もありません。
.sp .sp
...@@ -1372,9 +1365,7 @@ greetings\&.Hello ...@@ -1372,9 +1365,7 @@ greetings\&.Hello
.\} .\}
.RE .RE
.PP .PP
\fB例 2\fR \fB例 2 \fR複数のソース・ファイルのコンパイル
.br
複数のソース・ファイルのコンパイル
.RS 4 .RS 4
この例では、\fBgreetings\fRパッケージのソース・ファイル\fBAloha\&.java\fR、\fBGutenTag\&.java\fR、\fBHello\&.java\fRおよび\fBHi\&.java\fRをコンパイルします。 この例では、\fBgreetings\fRパッケージのソース・ファイル\fBAloha\&.java\fR、\fBGutenTag\&.java\fR、\fBHello\&.java\fRおよび\fBHi\&.java\fRをコンパイルします。
.sp .sp
...@@ -1393,9 +1384,7 @@ greetings\&.Hello ...@@ -1393,9 +1384,7 @@ greetings\&.Hello
.\} .\}
.RE .RE
.PP .PP
\fB例 3\fR \fB例 3 \fRユーザー・クラス・パスの指定
.br
ユーザー・クラス・パスの指定
.RS 4 .RS 4
前述の例のソース・ファイルのうち1つを変更した後に、そのファイルを再コンパイルします。 前述の例のソース・ファイルのうち1つを変更した後に、そのファイルを再コンパイルします。
.sp .sp
...@@ -1450,9 +1439,7 @@ greetings\&.Hello ...@@ -1450,9 +1439,7 @@ greetings\&.Hello
.\} .\}
.RE .RE
.PP .PP
\fB例 4\fR \fB例 4 \fRソース・ファイルとクラス・ファイルの分離
.br
ソース・ファイルとクラス・ファイルの分離
.RS 4 .RS 4
次の例では、\fBjavac\fRを使用して、JVM 1\&.7上で実行するコードをコンパイルします。 次の例では、\fBjavac\fRを使用して、JVM 1\&.7上で実行するコードをコンパイルします。
.sp .sp
...@@ -1486,9 +1473,7 @@ greetings\&.Hello ...@@ -1486,9 +1473,7 @@ greetings\&.Hello
適切なバージョンのブートストラップ・クラスを指定しない場合、コンパイラは古い言語仕様(この例では、バージョン1\&.7のJavaプログラミング言語)を新しいブートストラップ・クラスと組み合せて使用します。その結果、存在しないメソッドへの参照が含まれていることがあるため、クラス・ファイルが古いプラットフォーム(この場合はJava SE 7)で動作しない可能性があります。 適切なバージョンのブートストラップ・クラスを指定しない場合、コンパイラは古い言語仕様(この例では、バージョン1\&.7のJavaプログラミング言語)を新しいブートストラップ・クラスと組み合せて使用します。その結果、存在しないメソッドへの参照が含まれていることがあるため、クラス・ファイルが古いプラットフォーム(この場合はJava SE 7)で動作しない可能性があります。
.RE .RE
.PP .PP
\fB例 5\fR \fB例 5 \fRクロス・コンパイル
.br
クロス・コンパイル
.RS 4 .RS 4
この例では、\fBjavac\fRを使用して、JVM 1\&.7上で実行するコードをコンパイルします。 この例では、\fBjavac\fRを使用して、JVM 1\&.7上で実行するコードをコンパイルします。
.sp .sp
...@@ -1503,7 +1488,7 @@ greetings\&.Hello ...@@ -1503,7 +1488,7 @@ greetings\&.Hello
.if n \{\ .if n \{\
.RE .RE
.\} .\}
\fB \-source 1\&.7\fRオプションにより、OldCode\&.javaのコンパイルにはリリース1\&.7(または7)のJavaプログラミング言語が使用されます。\fB\-target 1\&.7\fRオプションにより、JVM 1\&.7と互換性のあるクラス・ファイルが生成されます。ほとんどの場合、\fB\-target\fRの値は\fB\-source\fRの値になります。この例では、\fB\-target\fRオプションは省略されます。 \fB \-source 1\&.7\fRオプションにより、OldCode\&.javaのコンパイルにはリリース1\&.7(または7)のJavaプログラミング言語が使用されます。\fB\-target 1\&.7\fRオプションにより、JVM 1\&.7と互換性のあるクラス・ファイルが生成されます。
.sp .sp
\fB\-bootclasspath\fRオプションを使用して、適切なバージョンのブートストラップ・クラス(\fBrt\&.jar\fRライブラリ)を指定する必要があります。指定しない場合は、コンパイラによって次の警告が生成されます。 \fB\-bootclasspath\fRオプションを使用して、適切なバージョンのブートストラップ・クラス(\fBrt\&.jar\fRライブラリ)を指定する必要があります。指定しない場合は、コンパイラによって次の警告が生成されます。
.sp .sp
......
...@@ -23,14 +23,15 @@ ...@@ -23,14 +23,15 @@
.\" .\"
.\" Title: javadoc .\" Title: javadoc
.\" Language: Japanese .\" Language: Japanese
.\" Date: 2011年5月10 .\" Date: 2015年3月3
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "javadoc" "1" "2011年5月10日" "JDK 8" "基本ツール" .TH "javadoc" "1" "2015年3月3日" "JDK 8" "基本ツール"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
...@@ -359,7 +360,7 @@ package\&.html ...@@ -359,7 +360,7 @@ package\&.html
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
処理できるようにコメントをコピーします。package\&.htmlの場合、\fBjavadoc\fRコマンドは、\fB<body>\fRと\fB</body>\fR 処理できるようにコメントをコピーします。package\&.htmlの場合、\fBjavadoc\fRコマンドは、\fB<body>\fRと\fB</body>\fR
HTMLタグ間ですべてのコンテンツをコピーします。\fB<head>\fRセクションを含めて、\fB<title>\fRタグ、ソース・ファイルのコピーライト文、その他の情報を配置することはできますが、これらは生成されるドキュメントには表示されません。 HTMLタグ間ですべてのコンテンツをコピーします。\fB<title>\fRタグ、ソース・ファイルの著作権文または他の情報を配置する\fB<head>\fRセクションを含めることができますが、これらは生成されたドキュメントに表示されません。
.RE .RE
.sp .sp
.RS 4 .RS 4
...@@ -1425,9 +1426,9 @@ JDK 1\&.0 ...@@ -1425,9 +1426,9 @@ JDK 1\&.0
.RS 4 .RS 4
JDK 1\&.5で導入 JDK 1\&.5で導入
.sp .sp
\fB<code>{@literal}</code>\fRと同です。 \fB<code>{@literal}</code>\fRと同です。
.sp .sp
テキストをHTMLマークアップまたはネストされたJavadocタグとして解釈せずに、textをコード・フォントで表示します。これにより、ドキュメンテーション・コメントでは、パラメータの型(\fB<Object>\fR)、不等号(\fB3 < 4\fR)、矢印(\fB<\-\fR)などで、通常の山カッコ(<および>)をHTMLエンティティ(\fB&lt;\fRおよび\fB&gt;\fR)のかわりに使用できます。たとえば、生成されたHTMLページに表示されるドキュメンテーション・コメント・テキスト\fB{@code A<B>C}\fRは、変更されず\fBA<B>C\fRとなります。つまり、\fB<B>\fRが太字として解釈されず、そのフォントはコード・フォントになります。コード・フォントなしで同じ機能を実現するには、\fB{@literal}\fRタグを使用します。 テキストをHTMLマークアップまたはネストされたJavadocタグとして解釈せずに、textをコード・フォントで表示します。これにより、ドキュメンテーション・コメントでは、パラメータの型(\fB<Object>\fR)、不等号(\fB3 < 4\fR)、矢印(\fB<\-\fR)などで、通常の山カッコ(<および>)をHTMLエンティティ(\fB&lt;\fRおよび\fB&gt;\fR)のかわりに使用できます。たとえば、ドキュメンテーション・コメント・テキスト\fB{@code A<B>C}\fRは、\fBA<B>C\fRとして変更されずに生成されたHTMLページに表示されます。つまり、\fB<B>\fRが太字として解釈されず、そのフォントはコード・フォントになります。コード・フォントなしで同じ機能を実現するには、\fB{@literal}\fRタグを使用します。
.RE .RE
.PP .PP
@deprecated \fIdeprecated\-text\fR @deprecated \fIdeprecated\-text\fR
...@@ -1594,7 +1595,7 @@ JDK 1\&.4 ...@@ -1594,7 +1595,7 @@ JDK 1\&.4
.RS 4 .RS 4
JDK 1\&.5で導入 JDK 1\&.5で導入
.sp .sp
テキストをHTMLマークアップまたはネストされたJavadocタグとして解釈せずに、textを表示します。これにより、ドキュメンテーション・コメントでは、パラメータの型(\fB<Object>\fR)、不等号(\fB3 < 4\fR)、矢印(<\-)などで、山カッコ(\fB<および>\fR)をHTMLエンティティ(\fB&lt;\fRおよび\fB&gt;\fR)のかわりに使用できます。たとえば、ドキュメンテーション・コメント・テキスト\fB{@literal A<B>C}\fRは、変更されずにブラウザに生成されたHTMLページに\fBA<B>C\fRと表示されます。\fB<B>\fRは太字として解釈されません(コード・フォントになりません)。コード・フォントで同じ機能を実現するには、\fB{@code}\fRタグを使用します。 テキストをHTMLマークアップまたはネストされたJavadocタグとして解釈せずに、textを表示します。これにより、ドキュメンテーション・コメントでは、パラメータの型(\fB<Object>\fR)、不等号(\fB3 < 4\fR)、矢印(<\-)などで、山カッコ(\fB<および>\fR)をHTMLエンティティ(\fB&lt;\fRおよび\fB&gt;\fR)のかわりに使用できます。たとえば、ドキュメンテーション・コメント・テキスト\fB{@literal A<B>C}\fRは、\fBA<B>C\fRとしてブラウザの生成されたHTMLページで変更されずに表示されます。\fB<B>\fRは太字として解釈されません(コード・フォントになりません)。コード・フォントで同じ機能を実現するには、\fB{@code}\fRタグを使用します。
.RE .RE
.PP .PP
@param \fIparameter\-name description\fR @param \fIparameter\-name description\fR
...@@ -1664,7 +1665,7 @@ JDK 1\&.0 ...@@ -1664,7 +1665,7 @@ JDK 1\&.0
.sp .sp
"The Java Programming Language" "The Java Programming Language"
.sp .sp
\fB形式2\fR。\fB@see <a href="URL#value">label</a>\fR形式は、\fBURL#value\fRで定義されたリンクを追加します。\fBURL#value\fRパラメータは、相対URLまたは絶対URLです。\fBjavadoc\fRコマンドは、最初の文字として「より小さい」記号(\fB<\fR)を検索して、この形式を他の形式と区別します。たとえば、\fB@see <a href="spec\&.html#section">Java Spec</a>\fRは次のリンクを生成します。 \fB形式2\fR。\fB@see <a href="URL#value">label</a>\fRフォームは、\fBURL#value\fRで定義されているようにリンクを追加します。\fBURL#value\fRパラメータは、相対URLまたは絶対URLです。\fBjavadoc\fRコマンドは、最初の文字として「より小さい」記号(\fB<\fR)を検索して、この形式を他の形式と区別します。たとえば、\fB@see <a href="spec\&.html#section">Java Spec</a>\fRは、次のリンクを生成します:
.sp .sp
\fB関連項目\fR: \fB関連項目\fR:
.sp .sp
...@@ -1673,7 +1674,7 @@ Java Spec ...@@ -1673,7 +1674,7 @@ Java Spec
\fB形式3\fR。\fB@see package\&.class#member label\fR形式は、表示テキスト・ラベルとともにリンクを追加します。このラベルは参照されているJava言語の指定された名前のドキュメントを指し示します。ラベルはオプションです。ラベルを省略した場合は、表示テキストのかわりに、名前が適切に短縮されて表示されます。\fB\-noqualifier\fRオプションを使用すると、この表示テキストからパッケージ名が全体的に削除されます。ラベルは、自動生成される表示テキストとは異なる表示テキストにする場合に使用します。「名前が表示される方法」を参照してください。 \fB形式3\fR。\fB@see package\&.class#member label\fR形式は、表示テキスト・ラベルとともにリンクを追加します。このラベルは参照されているJava言語の指定された名前のドキュメントを指し示します。ラベルはオプションです。ラベルを省略した場合は、表示テキストのかわりに、名前が適切に短縮されて表示されます。\fB\-noqualifier\fRオプションを使用すると、この表示テキストからパッケージ名が全体的に削除されます。ラベルは、自動生成される表示テキストとは異なる表示テキストにする場合に使用します。「名前が表示される方法」を参照してください。
.sp .sp
Java SE 1\&.2だけは、ラベルではなく名前が\fB<code>\fR Java SE 1\&.2だけは、ラベルではなく名前が\fB<code>\fR
HTMLタグ内に自動的に表示されます。Java SE 1\&.2\&.2からは、ラベルを使用するかしないかにかかわらず、\fB<code>\fRタグは常に表示テキストを囲むかたちで含まれます。 HTMLタグ内に自動的に表示されます。Java SE 1\&.2\&.2からは、ラベルを使用するかしないかにかかわらず、\fB<code>\fRタグは常に表示テキストを囲むで含まれます。
.sp .sp
.RS 4 .RS 4
.ie n \{\ .ie n \{\
...@@ -2290,15 +2291,677 @@ Javadoc ...@@ -2290,15 +2291,677 @@ Javadoc
.RE .RE
.PP .PP
オプションは次のとおりです。 オプションは次のとおりです。
.PP .sp
\-1\&.1 || \-author || \-bootclasspath classpathlist || \-bottom text || \-breakiterator || \-charset name || \-classpath classpathlist || \-d directory || \-docencoding name || \-docfilesubdirs || \-doclet class || \-docletpath classpathlist || \-doctitle title || \-encoding || \-exclude packagename1:packagename2:\&.\&.\&. || \-excludedocfilessubdir name1:name2 || \-extdirs dirist || \-footer footer || \-group groupheading packagepattern:packagepattern || \-header header || \-help || \-helpfile path\efilename || \-Jflag || \-keywords || \-link extdocURL || \-linkoffline extdocURL packagelistLoc || \-linksource || \-locale language_country_variant || \-nocomment || \-nodeprecated || \-nodeprecatedlist || \-nohelp || \-noindex || \-nonavbar || \-noqualifier all | packagename1:packagename2\&.\&.\&. || \-nosince || \-notimestamp || \-notree || .RS 4
.ie n \{\
\-overview path/filename || \h'-04'\(bu\h'+03'\c
\-package || \-private || \-protected || \-public || \-quiet || \-serialwarn || \-source release || \-sourcepath sourcepathlist || \-sourcetab tablength || \-splitindex || .\}
.el \{\
\-stylesheet path/filename || .sp -1
.IP \(bu 2.3
||\-subpackages package1:package2:\&.\&.\&. || \-tag tagname:Xaoptcmf:"taghead" || \-taglet class || \-tagletpath tagletpathlist || \-title title || \-top || \-use || \-verbose || \-version || \-windowtitle title .\}
\-1\&.1
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-author
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-bootclasspath classpathlist
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-bottom text
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-breakiterator
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-charset name
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-classpath classpathlist
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-d directory
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-docencoding name
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-docfilesubdirs
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-doclet class
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-docletpath classpathlist
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-doctitle title
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-encoding
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-exclude packagename1:packagename2:\&.\&.\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-excludedocfilessubdir name1:name2
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-extdirs dirist
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-footer footer
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-group groupheading packagepattern:packagepattern
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-header header
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-help
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-helpfile path\efilename
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-Jflag
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-javafx
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-keywords
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-link extdocURL
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-linkoffline extdocURL packagelistLoc
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-linksource
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-locale language_country_variant
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-nocomment
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-nodeprecated
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-nodeprecatedlist
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-nohelp
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-noindex
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-nonavbar
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-noqualifier all | packagename1:packagename2\&.\&.\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-nosince
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-notimestamp
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-notree
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-overview path/filename
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-package
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-private
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-protected
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-public
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-quiet
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-serialwarn
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-source release
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-sourcepath sourcepathlist
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-sourcetab tablength
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-splitindex
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-stylesheet path/filename
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-tag tagname:Xaoptcmf:"taghead"
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-subpackages package1:package2:\&.\&.\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-taglet class
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-tagletpath tagletpathlist
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-title title
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-top
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-use
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-verbose
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-version
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\-windowtitle title
.RE
.PP .PP
次のオプションは、すべてのドックレットに使用可能なコアのJavadocオプションです。標準ドックレットでは、ドックレットの他の部分を提供します。\fB\-bootclasspath\fR、\fB\-breakiterator\fR、\fB\-classpath\fR、\fB\-doclet\fR、\fB\-docletpath\fR、\fB\-encoding\fR、\-\fBexclude\fR、\fB\-extdirs\fR、\fB\-help\fR、\fB\-locale\fR、\fB\-\fR\fBoverview\fR、\fB\-package\fR、\fB\-private\fR、\fB\-protected\fR、\fB\-public\fR、\fB\-quiet\fR、\fB\-source\fR、\fB\-sourcepath\fR、\fB\-subpackages\fRおよび\fB\-verbose\fR。 次のオプションは、すべてのドックレットに使用可能なコアのJavadocオプションです。標準ドックレットでは、ドックレットの他の部分を提供します。\fB\-bootclasspath\fR、\fB\-breakiterator\fR、\fB\-classpath\fR、\fB\-doclet\fR、\fB\-docletpath\fR、\fB\-encoding\fR、\-\fBexclude\fR、\fB\-extdirs\fR、\fB\-help\fR、\fB\-locale\fR、\fB\-\fR\fBoverview\fR、\fB\-package\fR、\fB\-private\fR、\fB\-protected\fR、\fB\-public\fR、\fB\-quiet\fR、\fB\-source\fR、\fB\-sourcepath\fR、\fB\-subpackages\fRおよび\fB\-verbose\fR。
.SS "Javadocオプション" .SS "Javadocオプション"
...@@ -2306,7 +2969,7 @@ Javadoc ...@@ -2306,7 +2969,7 @@ Javadoc
\-overview \fIpath/filename \fR \-overview \fIpath/filename \fR
.RS 4 .RS 4
\fBjavadoc\fRコマンドに対して、\fIpath/filename \fRで指定されたソース・ファイルから概要ドキュメント用のテキストを取得し、そのテキストを概要ページ(overview\-summary\&.html)に配置するように指定します。\fIpath/filename\fRは、現在のディレクトリからの相対パスです。 \fBjavadoc\fRコマンドに対して、\fIpath/filename \fRで指定されたソース・ファイルから概要ドキュメント用のテキストを取得し、そのテキストを「概要」ページ(overview\-summary\&.html)に配置するように指定します。\fIpath/filename\fRは、現在のディレクトリからの相対パスです。
.sp .sp
\fBfilename\fRの値で任意の名前を使用し、pathで任意の配置先を指定できますが、通常はoverview\&.htmlという名前を付け、ソース・ツリー内の最上位パッケージ・ディレクトリを含むディレクトリに配置します。この場所に配置すると、パッケージをドキュメント化するときにpathを指定する必要がなくなります。これは、\fB\-sourcepath\fRオプションによってこのファイルが指し示されるからです。 \fBfilename\fRの値で任意の名前を使用し、pathで任意の配置先を指定できますが、通常はoverview\&.htmlという名前を付け、ソース・ツリー内の最上位パッケージ・ディレクトリを含むディレクトリに配置します。この場所に配置すると、パッケージをドキュメント化するときにpathを指定する必要がなくなります。これは、\fB\-sourcepath\fRオプションによってこのファイルが指し示されるからです。
.sp .sp
...@@ -2316,7 +2979,7 @@ Javadoc ...@@ -2316,7 +2979,7 @@ Javadoc
.sp .sp
\fIpath/filename\fRで指定するファイルについては、概要コメント・ファイルを参照してください。 \fIpath/filename\fRで指定するファイルについては、概要コメント・ファイルを参照してください。
.sp .sp
概要ページが作成されるのは、\fBjavadoc\fRコマンドに複数のパッケージ名を渡した場合のみです。詳細は、HTMLフレームを参照してください。概要ページのタイトルは、\fB\-doctitle\fRによって設定されます。 「概要」ページが作成されるのは、\fBjavadoc\fRコマンドに複数のパッケージ名を渡した場合のみです。詳細は、HTMLフレームを参照してください。「概要」ページのタイトルは、\fB\-doctitle\fRによって設定されます。
.RE .RE
.PP .PP
\-Xdoclint:(all|none|[\-]\fI<group>\fR) \-Xdoclint:(all|none|[\-]\fI<group>\fR)
...@@ -2537,8 +3200,9 @@ Javadoc 1\&.4 ...@@ -2537,8 +3200,9 @@ Javadoc 1\&.4
\-sourcepath \fIsourcepathlist\fR \-sourcepath \fIsourcepathlist\fR
.RS 4 .RS 4
パッケージ名または\fB\-subpackages\fRオプションを\fBjavadoc\fRコマンドに渡すときに、ソース・ファイルを見つけるための検索パスを指定します。 パッケージ名または\fB\-subpackages\fRオプションを\fBjavadoc\fRコマンドに渡すときに、ソース・ファイルを見つけるための検索パスを指定します。
.sp
複数のパスはコロン(:)で区切ります。 複数のパスはコロン(:)で区切ります。
.sp
\fBjavadoc\fRコマンドは、指定されたパス以下のすべてのサブディレクトリを検索します。このオプションを使用して、ドキュメント化されるソース・ファイルの位置のみでなく、それ自体はドキュメント化されないがドキュメント化されるソース・ファイルから継承されたコメントを持つソース・ファイルの位置も確認できます。 \fBjavadoc\fRコマンドは、指定されたパス以下のすべてのサブディレクトリを検索します。このオプションを使用して、ドキュメント化されるソース・ファイルの位置のみでなく、それ自体はドキュメント化されないがドキュメント化されるソース・ファイルから継承されたコメントを持つソース・ファイルの位置も確認できます。
.sp .sp
\fB\-sourcepath\fRオプションを使用できるのは、\fBjavadoc\fRコマンドにパッケージ名を渡す場合のみです。\fBjavadoc\fRコマンドに渡されるソース・ファイルは検索されません。ソース・ファイルを特定するには、そのディレクトリに移動するか、「1つ以上のクラスのドキュメント化」に示すように各ファイルの前にパスを含めます。\fB\-sourcepath\fRが省略された場合、\fBjavadoc\fRコマンドは、クラス・パスを使用してソース・ファイルを検索します(\fB\-classpath\fRを参照)。デフォルトの\fB\-sourcepath\fRは、クラス・パスの値です。\fB\-classpath\fRを省略してパッケージ名を\fBjavadoc\fRコマンドに渡すと、\fBjavadoc\fRコマンドは現在のディレクトリ(およびそのサブディレクトリ)からソース・ファイルを検索します。 \fB\-sourcepath\fRオプションを使用できるのは、\fBjavadoc\fRコマンドにパッケージ名を渡す場合のみです。\fBjavadoc\fRコマンドに渡されるソース・ファイルは検索されません。ソース・ファイルを特定するには、そのディレクトリに移動するか、「1つ以上のクラスのドキュメント化」に示すように各ファイルの前にパスを含めます。\fB\-sourcepath\fRが省略された場合、\fBjavadoc\fRコマンドは、クラス・パスを使用してソース・ファイルを検索します(\fB\-classpath\fRを参照)。デフォルトの\fB\-sourcepath\fRは、クラス・パスの値です。\fB\-classpath\fRを省略してパッケージ名を\fBjavadoc\fRコマンドに渡すと、\fBjavadoc\fRコマンドは現在のディレクトリ(およびそのサブディレクトリ)からソース・ファイルを検索します。
...@@ -2578,8 +3242,9 @@ Javadoc 1\&.4 ...@@ -2578,8 +3242,9 @@ Javadoc 1\&.4
\-classpath \fIclasspathlist\fR \-classpath \fIclasspathlist\fR
.RS 4 .RS 4
\fBjavadoc\fRコマンドが参照クラスの検索を行うときに使用するパスを指定します。参照クラスとは、ドキュメント化されるクラスと、それらのクラスによって参照されるすべてのクラスのことです。 \fBjavadoc\fRコマンドが参照クラスの検索を行うときに使用するパスを指定します。参照クラスとは、ドキュメント化されるクラスと、それらのクラスによって参照されるすべてのクラスのことです。
.sp
複数のパスはコロン(:)で区切ります。 複数のパスはコロン(:)で区切ります。
.sp
\fBjavadoc\fRコマンドは、指定されたパス以下のすべてのサブディレクトリを検索します。\fBclasspathlist\fRの値を指定するときは、クラス・パスのドキュメントにある指示に従ってください。 \fBjavadoc\fRコマンドは、指定されたパス以下のすべてのサブディレクトリを検索します。\fBclasspathlist\fRの値を指定するときは、クラス・パスのドキュメントにある指示に従ってください。
.sp .sp
\fB\-sourcepath\fRが省略された場合、\fBjavadoc\fRコマンドは\fB\-classpath\fRを使用して、ソース・ファイルおよびクラス・ファイルを検索します(後方互換性のため)。ソース・ファイルとクラス・ファイルを別々のパスから検索する必要がある場合は、\fB\-sourcepath\fRと\fB\-classpath\fRの両方を使用します。 \fB\-sourcepath\fRが省略された場合、\fBjavadoc\fRコマンドは\fB\-classpath\fRを使用して、ソース・ファイルおよびクラス・ファイルを検索します(後方互換性のため)。ソース・ファイルとクラス・ファイルを別々のパスから検索する必要がある場合は、\fB\-sourcepath\fRと\fB\-classpath\fRの両方を使用します。
...@@ -2689,7 +3354,7 @@ Javadoc 1\&.4 ...@@ -2689,7 +3354,7 @@ Javadoc 1\&.4
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
breakiterator文区切りアルゴリズム。次の語が大文字で始まる場合、空白文字が続くピリオド、疑問符、または感嘆符で停止します。このアルゴリズムでは「The serial no\&. is valid」など、ほとんどの省略表記が処理されますが、「Mr\&. Smith」は処理されません。\fB\-breakiterator\fRオプションでは、HTMLタグや、数字または記号で始まる文では停止しません。HTMLタグに埋め込まれている場合でも、「\&.\&./filename」の最後のピリオドで停止します。 breakiterator文区切りアルゴリズム。次の語が大文字で始まる場合、空白文字が続くピリオド、疑問符、または感嘆符で停止します。このアルゴリズムでは「The serial no\&. is valid」など、ほとんどの省略表記が処理されますが、「Mr\&. Smith」は処理されません。\fB\-breakiterator\fRオプションでは、HTMLタグや、数字または記号で始まる文では停止しません。HTMLタグに埋め込まれている場合でも、アルゴリズムは「\&.\&./filename」の最後のピリオドで停止します。
.RE .RE
.sp .sp
Java SE 1\&.5では\fB\-breakiterator\fR警告メッセージが削除され、デフォルトの文区切りアルゴリズムは変更されていません。ソース・コードを変更せず、SE 1\&.4\&.xでの\fB\-breakiterator\fRオプションの警告を除去していない場合でも、何もする必要はありません。Java SE 1\&.5\&.0からは警告は消滅しています。 Java SE 1\&.5では\fB\-breakiterator\fR警告メッセージが削除され、デフォルトの文区切りアルゴリズムは変更されていません。ソース・コードを変更せず、SE 1\&.4\&.xでの\fB\-breakiterator\fRオプションの警告を除去していない場合でも、何もする必要はありません。Java SE 1\&.5\&.0からは警告は消滅しています。
...@@ -2729,6 +3394,25 @@ Java SE 1\&.5 ...@@ -2729,6 +3394,25 @@ Java SE 1\&.5
\fBJava(TM) SE Runtime Environment (build 1\&.7\&.0_09\-b05)\fR \fBJava(TM) SE Runtime Environment (build 1\&.7\&.0_09\-b05)\fR
\fBJava HotSpot(TM) 64\-Bit Server VM (build 23\&.5\-b02, mixed mode)\fR \fBJava HotSpot(TM) 64\-Bit Server VM (build 23\&.5\-b02, mixed mode)\fR
.fi
.if n \{\
.RE
.\}
.RE
.PP
\-javafx
.RS 4
標準ドックレットに対してJavaFX拡張機能を使用して、HTMLドキュメントを生成します。生成されたドキュメントには、標準Javaドックレットで生成された他のサマリー・セクションに加えて「プロパティのサマリー」セクションが含まれています。リストされたプロパティは、各プロパティのgetterおよびsetterメソッドのセクションにリンクされます。
.sp
getterおよびsetterメソッドに対して明示的に記載されているドキュメント・コメントがない場合、プロパティ・メソッドのドキュメント・コメントがこれらのメソッドに対して生成されたドキュメントに自動的にコピーされます。このオプションは、プロパティのデフォルト値を記述できる新しい\fB@defaultValue\fRタグも追加します。
.sp
例:
.sp
.if n \{\
.RS 4
.\}
.nf
\fBjavadoc \-javafx MyClass\&.java \-d testdir\fR
.fi .fi
.if n \{\ .if n \{\
.RE .RE
...@@ -2740,12 +3424,12 @@ Java SE 1\&.5 ...@@ -2740,12 +3424,12 @@ Java SE 1\&.5
.RS 4 .RS 4
\fBjavadoc\fRコマンドが生成されたHTMLファイルを保存する生成先ディレクトリを指定します。\fB\-d\fRオプションを省略すると、ファイルは現在のディレクトリに保存されます。\fBdirectory\fRの値には、絶対ディレクトリ、または現在の作業ディレクトリからの相対ディレクトリを指定できます。Java SE 1\&.4では、\fBjavadoc\fRコマンドを実行すると生成先ディレクトリが自動的に作成されます。 \fBjavadoc\fRコマンドが生成されたHTMLファイルを保存する生成先ディレクトリを指定します。\fB\-d\fRオプションを省略すると、ファイルは現在のディレクトリに保存されます。\fBdirectory\fRの値には、絶対ディレクトリ、または現在の作業ディレクトリからの相対ディレクトリを指定できます。Java SE 1\&.4では、\fBjavadoc\fRコマンドを実行すると生成先ディレクトリが自動的に作成されます。
.sp .sp
たとえば、次の例では、\fBcom\&.mypackage\fRパッケージのドキュメントが生成され、その結果が/user/doc/ ディレクトリに保存されます。\fBjavadoc \-d \fR\fB/user/doc/ \fR\fBcom\&.mypackage\fR たとえば、次の例では、\fBcom\&.mypackage\fRパッケージのドキュメントが生成され、その結果が/user/doc/ディレクトリに保存されます。\fBjavadoc \-d \fR\fB/user/doc/ \fR\fBcom\&.mypackage\fR
.RE .RE
.PP .PP
\-use \-use
.RS 4 .RS 4
ドキュメント化されるクラスおよびパッケージごとに1つの使用ページを組み込みます。このページには、その特定のクラスまたはパッケージのAPIを使用しているパッケージ、クラス、メソッド、コンストラクタ、およびフィールドが記述されます。たとえば、クラスCを例にとると、クラスCを使用しているものとしては、Cのサブクラス、Cとして宣言されているフィールド、Cを返すメソッド、および型Cのパラメータを持つメソッドとコンストラクタがあります。たとえば、\fBString\fR型用の使用ページを表示できます。\fBjava\&.awt\&.Font\fRクラスの\fBgetName\fRメソッドは\fBString\fR型を戻すので、\fBgetName\fRメソッドは\fBString\fRを使用し、\fBgetName\fRメソッドが\fBString\fR用の使用ページに表示されます。これは実装ではなくAPIの使用のみをドキュメント化します。メソッドがその実装で\fBString\fRを使用するが、引数として文字列を取らない、または文字列を返さない場合、それは\fBString\fRの使用とはみなされません。生成された使用ページにアクセスするには、クラスまたはパッケージに移動し、ナビゲーション・バーの\fBリンクの使用\fRをクリックします。 ドキュメント化されるクラスおよびパッケージごとに1つの「使用」ページを組み込みます。このページには、その特定のクラスまたはパッケージのAPIを使用しているパッケージ、クラス、メソッド、コンストラクタ、およびフィールドが記述されます。たとえば、クラスCを例にとると、クラスCを使用しているものとしては、Cのサブクラス、Cとして宣言されているフィールド、Cを返すメソッド、および型Cのパラメータを持つメソッドとコンストラクタがあります。たとえば、\fBString\fR型用の「使用」ページを表示できます。\fBjava\&.awt\&.Font\fRクラスの\fBgetName\fRメソッドは\fBString\fR型を戻すので、\fBgetName\fRメソッドは\fBString\fRを使用し、\fBgetName\fRメソッドが\fBString\fR用の「使用」ページに表示されます。これは実装ではなくAPIの使用のみをドキュメント化します。メソッドがその実装で\fBString\fRを使用するが、引数として文字列を取らない、または文字列を返さない場合、それは\fBString\fRの使用とはみなされません。生成された「使用」ページにアクセスするには、クラスまたはパッケージに移動し、ナビゲーション・バーの\fBリンクの使用\fRをクリックします。
.RE .RE
.PP .PP
\-version \-version
...@@ -2847,9 +3531,7 @@ HTML ...@@ -2847,9 +3531,7 @@ HTML
.PP .PP
外部APIドキュメントへの絶対URLを使用する場合(そのURLに接続し、読取りを行うことがシェルによって許可されていない場合)は\fB\-linkoffline\fRオプションを使用します。このような状況は、ファイアウォールの内側からファイアウォールの外側にあるドキュメントにリンクしようとする場合に発生します。 外部APIドキュメントへの絶対URLを使用する場合(そのURLに接続し、読取りを行うことがシェルによって許可されていない場合)は\fB\-linkoffline\fRオプションを使用します。このような状況は、ファイアウォールの内側からファイアウォールの外側にあるドキュメントにリンクしようとする場合に発生します。
.PP .PP
\fB例 1\fR \fB例 1 \fR外部ドキュメントへの絶対リンク
.br
外部ドキュメントへの絶対リンク
.RS 4 .RS 4
http://docs\&.oracle\&.com/javase/8/docs/api/index\&.htmlに示すような、\fBjava\&.lang\fR、\fBjava\&.io\fRおよびその他のJavaプラットフォーム・パッケージにリンクする場合、次のコマンドを使用します http://docs\&.oracle\&.com/javase/8/docs/api/index\&.htmlに示すような、\fBjava\&.lang\fR、\fBjava\&.io\fRおよびその他のJavaプラットフォーム・パッケージにリンクする場合、次のコマンドを使用します
.sp .sp
...@@ -2866,9 +3548,7 @@ http://docs\&.oracle\&.com/javase/8/docs/api/index\&.html ...@@ -2866,9 +3548,7 @@ http://docs\&.oracle\&.com/javase/8/docs/api/index\&.html
このコマンドは、Java SEプラットフォーム・パッケージへのリンク持つ\fBcom\&.mypackage\fRパッケージのドキュメントを生成します。生成ドキュメントには、たとえばクラス\fBtrees\fR内の\fBObject\fRクラスへのリンクが含まれています。\fB\-sourcepath\fRや\fB\-d\fRなどの他のオプションは表示されません。 このコマンドは、Java SEプラットフォーム・パッケージへのリンク持つ\fBcom\&.mypackage\fRパッケージのドキュメントを生成します。生成ドキュメントには、たとえばクラス\fBtrees\fR内の\fBObject\fRクラスへのリンクが含まれています。\fB\-sourcepath\fRや\fB\-d\fRなどの他のオプションは表示されません。
.RE .RE
.PP .PP
\fB例 2\fR \fB例 2 \fR外部ドキュメントへの相対リンク
.br
外部ドキュメントへの相対リンク
.RS 4 .RS 4
この例では、2つのパッケージがあり、そのドキュメントは\fBjavadoc\fRコマンドを複数回実行した結果生成されたものです。さらに、これらのドキュメントは相対パスで分割されています。パッケージは、APIである\fBcom\&.apipackage\fRと、SPI(サービス・プロバイダ・インタフェース)であるc\fBom\&.spipackage\fRです。ドキュメントの格納先は、docs/api/com/apipackageとdocs/spi/com/spipackageです。APIパッケージのドキュメントはすでに生成されていて、docsが現在のディレクトリである場合、APIドキュメントへのリンクを持つSPIパッケージをドキュメント化するには、次のコマンドを実行します。\fBjavadoc \-d \&./spi \-link \&.\&./api com\&.spipackage\fR この例では、2つのパッケージがあり、そのドキュメントは\fBjavadoc\fRコマンドを複数回実行した結果生成されたものです。さらに、これらのドキュメントは相対パスで分割されています。パッケージは、APIである\fBcom\&.apipackage\fRと、SPI(サービス・プロバイダ・インタフェース)であるc\fBom\&.spipackage\fRです。ドキュメントの格納先は、docs/api/com/apipackageとdocs/spi/com/spipackageです。APIパッケージのドキュメントはすでに生成されていて、docsが現在のディレクトリである場合、APIドキュメントへのリンクを持つSPIパッケージをドキュメント化するには、次のコマンドを実行します。\fBjavadoc \-d \&./spi \-link \&.\&./api com\&.spipackage\fR
.sp .sp
...@@ -3034,7 +3714,7 @@ package\-list ...@@ -3034,7 +3714,7 @@ package\-list
.PP .PP
ドキュメントの更新 ドキュメントの更新
.PP .PP
プロジェクトに何十または何百のパッケージが含まれる場合にも、\fB\-linkoffline\fRオプションを使用できます。ソース・ツリー全体ですでに\fBjavadoc\fRコマンドを実行したことがある場合、ドキュメンテーション・コメントにわずかな変更を迅速に加え、ソース・ツリーの一部で\fBjavadoc\fRコマンドを再実行することができます。2回目の実行は、ドキュメンテーション・コメントを変更し、宣言は変更しない場合にのみ正しく処理されることに注意してください。ソース・コードに対して宣言を追加、削除、または変更した場合は、索引、パッケージ・ツリー、継承されるメンバーのリスト、使用ページなどの場所で、リンクが壊れることがあります。 プロジェクトに何十または何百のパッケージが含まれる場合にも、\fB\-linkoffline\fRオプションを使用できます。ソース・ツリー全体ですでに\fBjavadoc\fRコマンドを実行したことがある場合、ドキュメンテーション・コメントにわずかな変更を迅速に加え、ソース・ツリーの一部で\fBjavadoc\fRコマンドを再実行することができます。2回目の実行は、ドキュメンテーション・コメントを変更し、宣言は変更しない場合にのみ正しく処理されることに注意してください。ソース・コードに対して宣言を追加、削除、または変更した場合は、索引、パッケージ・ツリー、継承されるメンバーのリスト、「使用」ページなどの場所で、リンクが壊れることがあります。
.PP .PP
まず、この新しい小規模な実行で使用する、新しい生成先ディレクトリ(updateなど)を作成します。この例では、元の生成先ディレクトリの名前はhtmlです。最も単純な例では、htmlディレクトリの親ディレクトリに移動します。\fB\-linkoffline\fRオプションの第1引数にカレント・ディレクトリ(\&.)を設定し、第2引数にpackage\-listが検索されるhtmlへの相対パスを設定し、更新するパッケージのパッケージ名のみを渡します。 まず、この新しい小規模な実行で使用する、新しい生成先ディレクトリ(updateなど)を作成します。この例では、元の生成先ディレクトリの名前はhtmlです。最も単純な例では、htmlディレクトリの親ディレクトリに移動します。\fB\-linkoffline\fRオプションの第1引数にカレント・ディレクトリ(\&.)を設定し、第2引数にpackage\-listが検索されるhtmlへの相対パスを設定し、更新するパッケージのパッケージ名のみを渡します。
.sp .sp
...@@ -3053,7 +3733,7 @@ package\-list ...@@ -3053,7 +3733,7 @@ package\-list
.PP .PP
\-linksource \-linksource
.RS 4 .RS 4
各ソース・ファイル(行番号付き)のHTMLバージョンを作成し、標準HTMLドキュメントからソース・ファイルへのリンクを追加します。リンクは、ソース・ファイル内に宣言されているクラス、インタフェース、コンストラクタ、メソッド、フィールドに対して作成されます。そうでない場合、たとえばデフォルト・コンストラクタや生成されたクラスに対しては、リンクは作成されません。 各ソース・ファイル(行番号付き)のHTMLバージョンを作成し、標準HTMLドキュメントからソース・ファイルへのリンクを追加します。リンクは、ソース・ファイル内に宣言されているクラス、インタフェース、コンストラクタ、メソッド、フィールドに対して作成されます。デフォルト・コンストラクタ、生成されたクラスなどに対しては作成されません。
.sp .sp
このオプションは、\fB\-public\fR、\fB\-package\fR、\fB\-protected\fRおよび\fB\-private\fRの各オプションとは関係なく、非公開のクラス、フィールド、非公開のメソッドの本体をはじめとする組み込まれたソース・ファイル内のすべての非公開実装の詳細を公開します。\fB\-private\fRオプションもあわせて指定しないかぎり、非公開のクラスやインタフェースの一部には、リンクを介してアクセスできないことがあります。 このオプションは、\fB\-public\fR、\fB\-package\fR、\fB\-protected\fRおよび\fB\-private\fRの各オプションとは関係なく、非公開のクラス、フィールド、非公開のメソッドの本体をはじめとする組み込まれたソース・ファイル内のすべての非公開実装の詳細を公開します。\fB\-private\fRオプションもあわせて指定しないかぎり、非公開のクラスやインタフェースの一部には、リンクを介してアクセスできないことがあります。
.sp .sp
...@@ -3342,7 +4022,7 @@ HTML ...@@ -3342,7 +4022,7 @@ HTML
.sp .sp
標準タグは、最初、デフォルトの順序でリスト内に内部的に格納されます。\fB\-tag\fRオプションを使用すると、それらのタグはこのリストに追加されます。標準タグは、デフォルトの位置から移動されます。そのため、標準タグの\fB\-tag\fRオプションを省略すると、それはデフォルトの位置に配置されたままになります。 標準タグは、最初、デフォルトの順序でリスト内に内部的に格納されます。\fB\-tag\fRオプションを使用すると、それらのタグはこのリストに追加されます。標準タグは、デフォルトの位置から移動されます。そのため、標準タグの\fB\-tag\fRオプションを省略すると、それはデフォルトの位置に配置されたままになります。
.sp .sp
\fB競合の回避\fR: 固有の名前空間を作成するには、パッケージに使用されている\fBcom\&.mycompany\&.todo\fRという名前のように、ドットで区切られた名前を使用します。Oracleは、今後も名前にドットを含まない標準タグを作成します。ユーザーが作成したタグは、Oracleが定義する同じ名前のタグの動作をオーバーライドします。\fB@todo\fRという名前のタグまたはタグレットをユーザーが作成した場合、その後にOracleが同じ名前の標準タグを作成しても、そのタグまたはタグレットは常にユーザーが定義したのと同じ動作を保持します。 \fB競合の回避\fR: 固有の名前空間を作成する場合、パッケージに使用されている\fBcom\&.mycompany\&.todo\fRのようなドットで区切りの命名規則を使用できます。Oracleは、今後も名前にドットを含まない標準タグを作成します。ユーザーが作成したタグは、Oracleが定義する同じ名前のタグの動作をオーバーライドします。\fB@todo\fRという名前のタグまたはタグレットをユーザーが作成した場合、その後にOracleが同じ名前の標準タグを作成しても、そのタグまたはタグレットは常にユーザーが定義したのと同じ動作を保持します。
.sp .sp
\fB注釈vs\&. Javadocタグ\fR: 一般に、追加する必要のあるマークアップが、ドキュメントに影響を与えたりドキュメントを生成したりするためのものである場合、そのマークアップはJavadocタグにします。それ以外の場合は注釈にします。JavadocツールでのDocコメントの記述方法のカスタム・タグと注釈に関する項 \fB注釈vs\&. Javadocタグ\fR: 一般に、追加する必要のあるマークアップが、ドキュメントに影響を与えたりドキュメントを生成したりするためのものである場合、そのマークアップはJavadocタグにします。それ以外の場合は注釈にします。JavadocツールでのDocコメントの記述方法のカスタム・タグと注釈に関する項
(http://www\&.oracle\&.com/technetwork/java/javase/documentation/index\-137868\&.html#annotations)を参照してください。 (http://www\&.oracle\&.com/technetwork/java/javase/documentation/index\-137868\&.html#annotations)を参照してください。
...@@ -3428,16 +4108,12 @@ doc\-files ...@@ -3428,16 +4108,12 @@ doc\-files
.PP .PP
\fBjavadoc\fRを実行するときに、各引数ファイルのパスとファイル名の先頭に@文字を付けて渡します。\fBjavadoc\fRコマンドは、アットマーク(@)文字で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。 \fBjavadoc\fRを実行するときに、各引数ファイルのパスとファイル名の先頭に@文字を付けて渡します。\fBjavadoc\fRコマンドは、アットマーク(@)文字で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。
.PP .PP
\fB例 1\fR \fB例 1 \fR単一の引数ファイル
.br
単一の引数ファイル
.RS 4 .RS 4
\fBargfile\fRという名前の1つの引数ファイルを使用して、すべての\fBjavadoc\fRコマンド引数を保持できます。\fBjavadoc @argfile\fR次の例に示すように、この引数ファイルには両方のファイルの内容が含まれています。 \fBargfile\fRという名前の1つの引数ファイルを使用して、すべての\fBjavadoc\fRコマンド引数を保持できます。\fBjavadoc @argfile\fR次の例に示すように、この引数ファイルには両方のファイルの内容が含まれています。
.RE .RE
.PP .PP
\fB例 2\fR \fB例 2 \fR2つの引数ファイル
.br
2つの引数ファイル
.RS 4 .RS 4
次のように、2つの引数ファイルを作成できます。\fBjavadoc\fRコマンドのオプション用に1つ、パッケージ名またはソース・ファイル名用に1つです。次のリストでは行継続文字を使用していません。 次のように、2つの引数ファイルを作成できます。\fBjavadoc\fRコマンドのオプション用に1つ、パッケージ名またはソース・ファイル名用に1つです。次のリストでは行継続文字を使用していません。
.sp .sp
...@@ -3490,9 +4166,7 @@ doc\-files ...@@ -3490,9 +4166,7 @@ doc\-files
.\} .\}
.RE .RE
.PP .PP
\fB例 3\fR \fB例 3 \fRパスを使用した引数ファイル
.br
パスを使用した引数ファイル
.RS 4 .RS 4
引数ファイルはパスを指定できますが、ファイル内のすべてのファイル名は、(\fBpath1\fRや\fBpath2\fRではなく)次のように現在の作業ディレクトリに相対的となります。 引数ファイルはパスを指定できますが、ファイル内のすべてのファイル名は、(\fBpath1\fRや\fBpath2\fRではなく)次のように現在の作業ディレクトリに相対的となります。
.sp .sp
...@@ -3508,9 +4182,7 @@ doc\-files ...@@ -3508,9 +4182,7 @@ doc\-files
.\} .\}
.RE .RE
.PP .PP
\fB例 4\fR \fB例 4 \fRオプション引数
.br
オプション引数
.RS 4 .RS 4
次に、\fBjavadoc\fRコマンドのオプションに対する引数を引数ファイルに格納する例を示します。長い引数を指定できるので、\fB\-bottom\fRオプションを使用します。次のようなテキスト引数を含む、bottomという名前のファイルを作成できます。 次に、\fBjavadoc\fRコマンドのオプションに対する引数を引数ファイルに格納する例を示します。長い引数を指定できるので、\fB\-bottom\fRオプションを使用します。次のようなテキスト引数を含む、bottomという名前のファイルを作成できます。
.sp .sp
...@@ -3557,12 +4229,9 @@ Java ...@@ -3557,12 +4229,9 @@ Java
.PP .PP
ディレクトリの変更(\fBcd\fRコマンドを使用)または\fB\-sourcepath\fRオプションにより、\fBjavadoc\fRコマンドを実行できます。次の例で両方の選択肢を示します。 ディレクトリの変更(\fBcd\fRコマンドを使用)または\fB\-sourcepath\fRオプションにより、\fBjavadoc\fRコマンドを実行できます。次の例で両方の選択肢を示します。
.PP .PP
\fB例 1\fR \fB例 1 \fR1つ以上のパッケージから再帰的に実行
.br
1つ以上のパッケージから再帰的に実行
.RS 4 .RS 4
この例では\fBjavadoc\fRコマンドが任意のディレクトリから実行できるように、\fB\-sourcepath\fRを使用し、再帰的処理のために\fB\-subpackages\fR この例では\fBjavadoc\fRコマンドが任意のディレクトリから実行できるように、\fB\-sourcepath\fRを使用し、再帰的処理のために\fB\-subpackages\fR(1\&.4の新オプション)を使用します。これは、javaディレクトリのサブパッケージをたどりますが、\fBjava\&.net\fRと\fBjava\&.lang\fRをルートに持つパッケージは除外されます。\fBjava\&.lang\fRのサブパッケージである\fBjava\&.lang\&.ref\fRが除外される点に注意してください。また、他のパッケージ・ツリーを下方にたどるには、\fBjava:javax:org\&.xml\&.sax\fRのように、それらのパッケージの名前を\fB\-subpackages\fRの引数に追加します。
(1\&.4の新オプション)を使用します。これは、javaディレクトリのサブパッケージをたどりますが、\fBjava\&.net\fRと\fBjava\&.lang\fRをルートに持つパッケージは除外されます。\fBjava\&.lang\fRのサブパッケージである\fBjava\&.lang\&.ref\fRが除外される点に注意してください。また、他のパッケージ・ツリーを下方にたどるには、\fBjava:javax:org\&.xml\&.sax\fRのように、それらのパッケージの名前を\fB\-subpackages\fRの引数に追加します。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
...@@ -3576,9 +4245,7 @@ Java ...@@ -3576,9 +4245,7 @@ Java
.\} .\}
.RE .RE
.PP .PP
\fB例 2\fR \fB例 2 \fRルートへの移動および明示的なパッケージの実行
.br
ルートへの移動および明示的なパッケージの実行
.RS 4 .RS 4
完全修飾されたパッケージの親ディレクトリに移動します。次に、ドキュメント化する1つ以上のパッケージの名前を指定して\fBjavadoc\fRコマンドを実行します。 完全修飾されたパッケージの親ディレクトリに移動します。次に、ドキュメント化する1つ以上のパッケージの名前を指定して\fBjavadoc\fRコマンドを実行します。
.sp .sp
...@@ -3596,9 +4263,7 @@ Java ...@@ -3596,9 +4263,7 @@ Java
また、他のパッケージ・ツリーを下方にたどるには、j\fBava:javax:org\&.xml\&.sax\fRのように、それらのパッケージの名前を\fB\-subpackages\fRの引数に追加します。 また、他のパッケージ・ツリーを下方にたどるには、j\fBava:javax:org\&.xml\&.sax\fRのように、それらのパッケージの名前を\fB\-subpackages\fRの引数に追加します。
.RE .RE
.PP .PP
\fB例 3\fR \fB例 3 \fR1つのツリーの明示的なパッケージの任意のディレクトリから実行
.br
1つのツリーの明示的なパッケージの任意のディレクトリから実行
.RS 4 .RS 4
この場合、現在のディレクトリがどこかは問題ではありません。\fBjavadoc\fRコマンドを実行し、最上位パッケージの親ディレクトリを指定して\fB\-sourcepath\fRオプションを使用します。ドキュメント化する1つ以上のパッケージの名前を指定します。 この場合、現在のディレクトリがどこかは問題ではありません。\fBjavadoc\fRコマンドを実行し、最上位パッケージの親ディレクトリを指定して\fB\-sourcepath\fRオプションを使用します。ドキュメント化する1つ以上のパッケージの名前を指定します。
.sp .sp
...@@ -3614,9 +4279,7 @@ Java ...@@ -3614,9 +4279,7 @@ Java
.\} .\}
.RE .RE
.PP .PP
\fB例 4\fR \fB例 4 \fR複数のツリーの明示的なパッケージの任意のディレクトリから実行
.br
複数のツリーの明示的なパッケージの任意のディレクトリから実行
.RS 4 .RS 4
\fBjavadoc\fRコマンドを実行し、各ツリーのルートへのパスのコロン区切りリストを指定して\fB\-sourcepath\fRオプションを使用します。ドキュメント化する1つ以上のパッケージの名前を指定します。指定したパッケージのすべてのソース・ファイルが、1つのルート・ディレクトリの下に存在する必要はありませんが、ソース・パスで指定された場所のどこかで見つかる必要があります。 \fBjavadoc\fRコマンドを実行し、各ツリーのルートへのパスのコロン区切りリストを指定して\fB\-sourcepath\fRオプションを使用します。ドキュメント化する1つ以上のパッケージの名前を指定します。指定したパッケージのすべてのソース・ファイルが、1つのルート・ディレクトリの下に存在する必要はありませんが、ソース・パスで指定された場所のどこかで見つかる必要があります。
.sp .sp
...@@ -3637,9 +4300,7 @@ Java ...@@ -3637,9 +4300,7 @@ Java
.PP .PP
また、1つ以上のソース・ファイルを渡して、\fBjavadoc\fRコマンドを実行することもできます。\fBjavadoc\fRは、次の2つの方法のいずれかで実行できます。1つはディレクトリを変更する方法(\fBcd\fRを使用)、もう1つはソース・ファイルへのパスを完全に指定する方法です。相対パスは、現在のディレクトリを起点とします。ソース・ファイルを渡すときは、\fB\-sourcepath\fRオプションは無視されます。アスタリスク(*)のようなコマンド行ワイルドカードを使用すると、クラスのグループを指定できます。 また、1つ以上のソース・ファイルを渡して、\fBjavadoc\fRコマンドを実行することもできます。\fBjavadoc\fRは、次の2つの方法のいずれかで実行できます。1つはディレクトリを変更する方法(\fBcd\fRを使用)、もう1つはソース・ファイルへのパスを完全に指定する方法です。相対パスは、現在のディレクトリを起点とします。ソース・ファイルを渡すときは、\fB\-sourcepath\fRオプションは無視されます。アスタリスク(*)のようなコマンド行ワイルドカードを使用すると、クラスのグループを指定できます。
.PP .PP
\fB例 1\fR \fB例 1 \fRソース・ディレクトリに変更
.br
ソース・ディレクトリに変更
.RS 4 .RS 4
ソースを保持するディレクトリに変更します。次に、ドキュメント化する1つ以上のソース・ファイルの名前を指定して\fBjavadoc\fRコマンドを実行します。 ソースを保持するディレクトリに変更します。次に、ドキュメント化する1つ以上のソース・ファイルの名前を指定して\fBjavadoc\fRコマンドを実行します。
.sp .sp
...@@ -3658,9 +4319,7 @@ Java ...@@ -3658,9 +4319,7 @@ Java
.\} .\}
.RE .RE
.PP .PP
\fB例 2\fR \fB例 2 \fRパッケージのルート・ディレクトリに変更
.br
パッケージのルート・ディレクトリに変更
.RS 4 .RS 4
これは、同じルートからの別のサブパッケージの個々のソース・ファイルをドキュメント化するのに役立ちます。パッケージのルート・ディレクトリに移り、各ソース・ファイルを、ルートからのパスとともに指定します。 これは、同じルートからの別のサブパッケージの個々のソース・ファイルをドキュメント化するのに役立ちます。パッケージのルート・ディレクトリに移り、各ソース・ファイルを、ルートからのパスとともに指定します。
.sp .sp
...@@ -3677,9 +4336,7 @@ Java ...@@ -3677,9 +4336,7 @@ Java
.\} .\}
.RE .RE
.PP .PP
\fB例 3\fR \fB例 3 \fR任意のディレクトリからのファイルのドキュメント化
.br
任意のディレクトリからのファイルのドキュメント化
.RS 4 .RS 4
この場合、現在のディレクトリがどこかは問題ではありません。ドキュメント化するソース・ファイルへの絶対パス(または現在のディレクトリからの相対パス)を指定して\fBjavadoc\fRコマンドを実行します。 この場合、現在のディレクトリがどこかは問題ではありません。ドキュメント化するソース・ファイルへの絶対パス(または現在のディレクトリからの相対パス)を指定して\fBjavadoc\fRコマンドを実行します。
.sp .sp
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "javah" "1" "2013年11月21日" "JDK 8" "基本ツール" .TH "javah" "1" "2013年11月21日" "JDK 8" "基本ツール"
...@@ -77,7 +78,7 @@ C ...@@ -77,7 +78,7 @@ C
.PP .PP
\fBjavah\fRコマンドは、ネイティブ・メソッドを実装するために必要なCヘッダーとソース・ファイルを生成します。作成されたヘッダーとソース・ファイルは、ネイティブ・ソース・コードからオブジェクトのインスタンス変数を参照するためにCプログラムによって使用されます。\fB\&.h\fRファイルは、対応するクラスと一致する配置を持つ\fBstruct\fR定義を含みます。\fBstruct\fRのフィールドは、クラスのインスタンス変数に対応します。 \fBjavah\fRコマンドは、ネイティブ・メソッドを実装するために必要なCヘッダーとソース・ファイルを生成します。作成されたヘッダーとソース・ファイルは、ネイティブ・ソース・コードからオブジェクトのインスタンス変数を参照するためにCプログラムによって使用されます。\fB\&.h\fRファイルは、対応するクラスと一致する配置を持つ\fBstruct\fR定義を含みます。\fBstruct\fRのフィールドは、クラスのインスタンス変数に対応します。
.PP .PP
ヘッダー・ファイルとその中で宣言される構造体の名前はクラスの名前から派生します。\fBjavah\fRコマンドに渡されるクラスがパッケージの中にある場合、パッケージ名はヘッダー・ファイル名と構造体名の両方の先頭に付加されます。下線(_)が名前の区切り文字として使用されます。 ヘッダー・ファイルとその中で宣言される構造体の名前はクラスの名前から派生します。\fBjavah\fRコマンドに渡されるクラスがパッケージの中にある場合、パッケージ名はヘッダー・ファイル名と構造体名の両方の先頭に付加されます。アンダースコア(_)が名前の区切り文字として使用されます。
.PP .PP
デフォルトでは\fBjavah\fRコマンドは、コマンド行にリストされる各クラスのヘッダー・ファイルを作成し、現在のディレクトリにファイルを置きます。ソース・ファイルを作成するには、\fB\-stubs\fRオプションを使用してください。1つのファイルの中に、リストされたすべてのクラスの結果を連結するには、\fB\-o\fRオプションを使用してください。 デフォルトでは\fBjavah\fRコマンドは、コマンド行にリストされる各クラスのヘッダー・ファイルを作成し、現在のディレクトリにファイルを置きます。ソース・ファイルを作成するには、\fB\-stubs\fRオプションを使用してください。1つのファイルの中に、リストされたすべてのクラスの結果を連結するには、\fB\-o\fRオプションを使用してください。
.PP .PP
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "javap" "1" "2014年8月8日" "JDK 8" "基本ツール" .TH "javap" "1" "2014年8月8日" "JDK 8" "基本ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: トラブルシューティング・ツール .\" SectDesc: トラブルシューティング・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jcmd" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" .TH "jcmd" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Javaトラブルシューティング、プロファイリング、モニタリングおよび管理ツール .\" SectDesc: Javaトラブルシューティング、プロファイリング、モニタリングおよび管理ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jconsole" "1" "2013年11月21日" "JDK 8" "Javaトラブルシューティング、プロファイリング、モニタリン" .TH "jconsole" "1" "2013年11月21日" "JDK 8" "Javaトラブルシューティング、プロファイリング、モニタリン"
...@@ -81,7 +82,7 @@ http://docs\&.oracle\&.com/javase/8/docs/api/javax/management/remote/JMXServiceU ...@@ -81,7 +82,7 @@ http://docs\&.oracle\&.com/javase/8/docs/api/javax/management/remote/JMXServiceU
.RE .RE
.SH "説明" .SH "説明"
.PP .PP
\fBjconsole\fRコマンドは、ローカル・マシンまたはリモート・マシン上のJavaアプリケーションと仮想マシンをモニターおよび管理するグラフィカル・コンソール・ツールを起動します。 \fBjconsole\fRコマンドは、ローカル・マシンまたはリモート・マシン上のJavaアプリケーションと仮想マシンのモニターと管理を行うグラフィカル・コンソール・ツールを起動します。
.PP .PP
Windows上では、\fBjconsole\fRコマンドはコンソール・ウィンドウと関連付けられていません。ただし、\fBjconsole\fRコマンドが失敗すると、エラー情報を示すダイアログ・ボックスが表示されます。 Windows上では、\fBjconsole\fRコマンドはコンソール・ウィンドウと関連付けられていません。ただし、\fBjconsole\fRコマンドが失敗すると、エラー情報を示すダイアログ・ボックスが表示されます。
.SH "オプション" .SH "オプション"
...@@ -93,7 +94,7 @@ Windows ...@@ -93,7 +94,7 @@ Windows
.PP .PP
\-notile \-notile
.RS 4 .RS 4
最初ウィンドウをタイル表示しません(複数接続の場合)。 最初ウィンドウをタイル表示しません(複数接続の場合)。
.RE .RE
.PP .PP
\-pluginpath \fIplugins\fR \-pluginpath \fIplugins\fR
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jdb" "1" "2013年11月21日" "JDK 8" "基本ツール" .TH "jdb" "1" "2013年11月21日" "JDK 8" "基本ツール"
...@@ -318,7 +319,7 @@ Java HotSpot VM ...@@ -318,7 +319,7 @@ Java HotSpot VM
.RS 4 .RS 4
JVMに\fBoption\fRを渡します。optionには、Javaアプリケーション起動ツールのリファレンス・ページに記載されているオプションを1つ指定します。たとえば、\fB\-J\-Xms48m\fRと指定すると、スタートアップ・メモリーは48MBに設定されます。java(1)を参照してください。 JVMに\fBoption\fRを渡します。optionには、Javaアプリケーション起動ツールのリファレンス・ページに記載されているオプションを1つ指定します。たとえば、\fB\-J\-Xms48m\fRと指定すると、スタートアップ・メモリーは48MBに設定されます。java(1)を参照してください。
.RE .RE
.SH "デバッグ対象のプロセスに転送されるオプション" .SH "デバッガ・プロセスに転送されるオプション"
.PP .PP
\-v \-verbose[:\fIclass\fR|gc|jni] \-v \-verbose[:\fIclass\fR|gc|jni]
.RS 4 .RS 4
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jdeps" "1" "2013年11月21日" "JDK 8" "基本ツール" .TH "jdeps" "1" "2013年11月21日" "JDK 8" "基本ツール"
...@@ -113,7 +114,7 @@ DOT ...@@ -113,7 +114,7 @@ DOT
.RS 4 .RS 4
クラス・ファイルの検索場所を指定します。 クラス・ファイルの検索場所を指定します。
.sp .sp
Setting the Class Path も参照してください。 クラス・パスの設定 も参照してください。
.RE .RE
.PP .PP
\-p <\fIpkg name\fR> \-p <\fIpkg name\fR>
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: トラブルシューティング・ツール .\" SectDesc: トラブルシューティング・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jhat" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" .TH "jhat" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: トラブルシューティング・ツール .\" SectDesc: トラブルシューティング・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jinfo" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" .TH "jinfo" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール"
...@@ -115,7 +116,7 @@ jinfo \- ...@@ -115,7 +116,7 @@ jinfo \-
.RE .RE
.SH "説明" .SH "説明"
.PP .PP
\fBjinfo\fRコマンドは、指定されたJavaプロセスやコア・ファイルまたはリモート・デバッグ・サーバーのJava構成情報を出力します。構成情報には、Javaシステム・プロパティとJava Virtual Machine (JVM)のコマンド行フラグが含まれています。指定されたプロセスが64ビットJVM上で実行されている場合、\fB\-J\-d64\fRオプションを指定する必要がある場合があります。次に例を示します。\fBjinfo\fR \fBjinfo\fRコマンドは、指定されたJavaプロセスやコア・ファイルまたはリモート・デバッグ・サーバーのJava構成情報を出力します。構成情報には、Javaシステム・プロパティとJava仮想マシン(JVM)のコマンド行フラグが含まれています。指定されたプロセスが64ビットJVM上で実行されている場合、\fB\-J\-d64\fRオプションを指定する必要がある場合があります。次に例を示します。\fBjinfo\fR
\fB\-J\-d64 \-sysprops pid\fR。 \fB\-J\-d64 \-sysprops pid\fR。
.PP .PP
このユーティリティはサポート対象外であり、将来のJDKのリリースでは利用できなくなる可能性があります。\fBdbgeng\&.dll\fRが存在していないWindowsシステムでは、Debugging Tools For Windowsをインストールしないとこれらのツールが正常に動作しません。\fBPATH\fR環境変数には、ターゲット・プロセスによって使用されるjvm\&.dllの場所、またはクラッシュ・ダンプ・ファイルが生成された場所が含まれるようにしてください。たとえば、\fBset PATH=%JDK_HOME%\ejre\ebin\eclient;%PATH%\fRです。 このユーティリティはサポート対象外であり、将来のJDKのリリースでは利用できなくなる可能性があります。\fBdbgeng\&.dll\fRが存在していないWindowsシステムでは、Debugging Tools For Windowsをインストールしないとこれらのツールが正常に動作しません。\fBPATH\fR環境変数には、ターゲット・プロセスによって使用されるjvm\&.dllの場所、またはクラッシュ・ダンプ・ファイルが生成された場所が含まれるようにしてください。たとえば、\fBset PATH=%JDK_HOME%\ejre\ebin\eclient;%PATH%\fRです。
......
...@@ -23,14 +23,15 @@ ...@@ -23,14 +23,15 @@
.\" .\"
.\" Title: jjs .\" Title: jjs
.\" Language: Japanese .\" Language: Japanese
.\" Date: 2013年11月21 .\" Date: 2015年3月3
.\" SectDesc: 基本ツール .\" SectDesc: 基本ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jjs" "1" "2013年11月21日" "JDK 8" "基本ツール" .TH "jjs" "1" "2015年3月3日" "JDK 8" "基本ツール"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
...@@ -113,7 +114,7 @@ jjs \- Nashorn ...@@ -113,7 +114,7 @@ jjs \- Nashorn
.PP .PP
\-cp \fIpath\fR \-cp \fIpath\fR
.br .br
\-\-classpath \fIpath\fR \-classpath \fIpath\fR
.RS 4 .RS 4
サポートするクラスへのパスを指定します。複数のパスを設定するには、このオプションを繰り返すか、または各パスをコロン(:)で区切ります。 サポートするクラスへのパスを指定します。複数のパスを設定するには、このオプションを繰り返すか、または各パスをコロン(:)で区切ります。
.RE .RE
...@@ -221,6 +222,11 @@ jjs \- Nashorn ...@@ -221,6 +222,11 @@ jjs \- Nashorn
このオプションを繰り返し使用すると、複数の\fBjava\fRコマンド・オプションを渡すことができます。 このオプションを繰り返し使用すると、複数の\fBjava\fRコマンド・オプションを渡すことができます。
.RE .RE
.PP .PP
\-\-language=[es5]
.RS 4
ECMAScript言語バージョンを指定します。デフォルトのバージョンはES5です。
.RE
.PP
\-\-lazy\-compilation \-\-lazy\-compilation
.RS 4 .RS 4
レイジー・コード生成戦略(つまり、スクリプト全体が一度にコンパイルされない)を有効にします。このオプションは試験的なものです。 レイジー・コード生成戦略(つまり、スクリプト全体が一度にコンパイルされない)を有効にします。このオプションは試験的なものです。
...@@ -240,13 +246,17 @@ jjs \- Nashorn ...@@ -240,13 +246,17 @@ jjs \- Nashorn
.\} .\}
.nf .nf
\fB\-\-log=fields:finest,codegen:info\fR \fB\-\-log=fields:finest,codegen:info\fR
.fi .fi
.if n \{\ .if n \{\
.RE .RE
.\} .\}
.RE .RE
.PP .PP
\-\-optimistic\-types=[true|false]
.RS 4
再コンパイルの最適化を解除してオプティミスティック・タイプ仮定を有効または無効にします。オプティミスティック・タイプを使用した実行によって最終的な速度が向上しますが、ウォームアップ時間が増える場合があります。
.RE
.PP
\-\-package=\fIname\fR \-\-package=\fIname\fR
.RS 4 .RS 4
生成されたクラス・ファイルを追加するパッケージを指定します。 生成されたクラス・ファイルを追加するパッケージを指定します。
...@@ -323,7 +333,7 @@ jjs \- Nashorn ...@@ -323,7 +333,7 @@ jjs \- Nashorn
.br .br
\-timezone=\fIzone\fR \-timezone=\fIzone\fR
.RS 4 .RS 4
スクリプトの実行に対し指定したタイム・ゾーンを設定します。OSで設定されたタイム・ゾーンをオーバーライドし、\fBDate\fRオブジェクトで使用されます。 スクリプトの実行に対し指定したタイムゾーンを設定します。OSで設定されたタイムゾーンをオーバーライドし、\fBDate\fRオブジェクトで使用されます。
.RE .RE
.PP .PP
\-tcs=\fIparameter\fR \-tcs=\fIparameter\fR
...@@ -366,9 +376,7 @@ Nashorn ...@@ -366,9 +376,7 @@ Nashorn
.RE .RE
.SH "例" .SH "例"
.PP .PP
\fB例 1\fR \fB例 1 \fRNashornを使用したスクリプトの実行
.br
Nashornを使用したスクリプトの実行
.RS 4 .RS 4
.sp .sp
.if n \{\ .if n \{\
...@@ -383,9 +391,7 @@ Nashorn ...@@ -383,9 +391,7 @@ Nashorn
.\} .\}
.RE .RE
.PP .PP
\fB例 2\fR \fB例 2 \fR対話型モードでのNashornの実行
.br
対話型モードでのNashornの実行
.RS 4 .RS 4
.sp .sp
.if n \{\ .if n \{\
...@@ -404,9 +410,7 @@ Nashorn ...@@ -404,9 +410,7 @@ Nashorn
.\} .\}
.RE .RE
.PP .PP
\fB例 3\fR \fB例 3 \fRNashornへの引数の渡し
.br
Nashornへの引数の渡し
.RS 4 .RS 4
.sp .sp
.if n \{\ .if n \{\
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: トラブルシューティング・ツール .\" SectDesc: トラブルシューティング・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jmap" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" .TH "jmap" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: モニタリング・ツール .\" SectDesc: モニタリング・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jps" "1" "2013年11月21日" "JDK 8" "モニタリング・ツール" .TH "jps" "1" "2013年11月21日" "JDK 8" "モニタリング・ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: スクリプティング・ツール .\" SectDesc: スクリプティング・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jrunscript" "1" "2013年11月21日" "JDK 8" "スクリプティング・ツール" .TH "jrunscript" "1" "2013年11月21日" "JDK 8" "スクリプティング・ツール"
...@@ -86,7 +87,7 @@ jrunscript \- ...@@ -86,7 +87,7 @@ jrunscript \-
\-cp \fIpath\fR \-cp \fIpath\fR
.RS 4 .RS 4
\fB\-classpath\fR \fB\-classpath\fR
\fBpath\fRと同じです。 \fIpath\fRと同じです。
.RE .RE
.PP .PP
\-D\fIname\fR=\fIvalue\fR \-D\fIname\fR=\fIvalue\fR
...@@ -96,7 +97,7 @@ Java ...@@ -96,7 +97,7 @@ Java
.PP .PP
\-J\fIflag\fR \-J\fIflag\fR
.RS 4 .RS 4
\fBflag\fRを、\fBjrunscript\fRコマンドが実行されているJava Virtual Machineに直接渡します。 \fBflag\fRを、\fBjrunscript\fRコマンドが実行されているJava仮想マシンに直接渡します。
.RE .RE
.PP .PP
\-I \fIlanguage\fR \-I \fIlanguage\fR
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: トラブルシューティング・ツール .\" SectDesc: トラブルシューティング・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jsadebugd" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" .TH "jsadebugd" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール"
...@@ -95,7 +96,7 @@ jsadebugd \- Java ...@@ -95,7 +96,7 @@ jsadebugd \- Java
.RE .RE
.SH "説明" .SH "説明"
.PP .PP
\fBjsadebugd\fRコマンドは、Javaプロセスまたはコア・ファイルに接続し、デバッグ・サーバーとして機能します。\fBjstack\fR、\fBjmap\fRおよび\fBjinfo\fRなどのリモート・クライアントは、Java Remote Method Invocation(RMI)を使用しているサーバーに接続できます。\fBjsadebugd\fRコマンドを起動する前に、\fBrmiregistry\fRコマンドでRMIレジストリを次のように起動します。\fI$JAVA_HOME\fRはJDKのインストール・ディレクトリです。 \fBjsadebugd\fRコマンドは、Javaプロセスまたはコア・ファイルに接続し、デバッグ・サーバーとして機能します。\fBjstack\fR、\fBjmap\fRおよび\fBjinfo\fRなどのリモート・クライアントは、Java Remote Method Invocation (RMI)を使用しているサーバーに接続できます。\fBjsadebugd\fRコマンドを起動する前に、\fBrmiregistry\fRコマンドでRMIレジストリを次のように起動します。\fI$JAVA_HOME\fRはJDKのインストール・ディレクトリです。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: トラブルシューティング・ツール .\" SectDesc: トラブルシューティング・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jstack" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" .TH "jstack" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール"
...@@ -115,7 +116,7 @@ jstack \- Java ...@@ -115,7 +116,7 @@ jstack \- Java
.RE .RE
.SH "説明" .SH "説明"
.PP .PP
\fBjstack\fRコマンドは、指定されたJavaプロセス、コア・ファイルまたはリモート・デバッグ・サーバーに対するJavaスレッドのJavaスタック・トレースを出力します。Javaフレームごとに、フルクラス名、メソッド名、バイトコード・インデックス(bci)、および行番号(利用可能な場合)が出力されます。\fB\-m\fRオプションを使用すると、\fBjstack\fRコマンドは、すべてのスレッドのJavaフレームとネイティブ・フレームの両方を、プログラム・カウンタ(PC)とともに出力します。ネイティブ・フレームごとに、PCに最も近いネイティブ・シンボル(利用可能な場合)が出力されます。C++分解名は分解解除されません。C++名を分解解除するには、このコマンドの出力を\fBc++filt\fRにパイプします。指定されたプロセスが64ビットJava Virtual Machine上で実行されている場合は、\fB\-J\-d64\fRオプションを指定する必要があります(例: \fBjstack\fRコマンドは、指定されたJavaプロセス、コア・ファイルまたはリモート・デバッグ・サーバーに対するJavaスレッドのJavaスタック・トレースを出力します。Javaフレームごとに、フルクラス名、メソッド名、バイトコード・インデックス(bci)、および行番号(利用可能な場合)が出力されます。\fB\-m\fRオプションを使用すると、\fBjstack\fRコマンドは、すべてのスレッドのJavaフレームとネイティブ・フレームの両方を、プログラム・カウンタ(PC)とともに出力します。ネイティブ・フレームごとに、PCに最も近いネイティブ・シンボル(利用可能な場合)が出力されます。C++分解名は分解解除されません。C++名を分解解除するには、このコマンドの出力を\fBc++filt\fRにパイプします。指定されたプロセスが64ビットJava仮想マシン上で実行されている場合は、\fB\-J\-d64\fRオプションを指定する必要があります(例:
\fBjstack \-J\-d64 \-m pid\fR)。 \fBjstack \-J\-d64 \-m pid\fR)。
.PP .PP
\fB注意\fR \fB注意\fR
......
...@@ -23,14 +23,15 @@ ...@@ -23,14 +23,15 @@
.\" .\"
.\" Title: jstat .\" Title: jstat
.\" Language: Japanese .\" Language: Japanese
.\" Date: 2011年5月10 .\" Date: 2015年3月3
.\" SectDesc: モニタリング・ツール .\" SectDesc: モニタリング・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jstat" "1" "2011年5月10日" "JDK 8" "モニタリング・ツール" .TH "jstat" "1" "2015年3月3日" "JDK 8" "モニタリング・ツール"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
...@@ -276,6 +277,10 @@ Java HotSpot VM Just\-in\-Time ...@@ -276,6 +277,10 @@ Java HotSpot VM Just\-in\-Time
.sp .sp
\fBMU\fR: メタスペースの使用率(KB)。 \fBMU\fR: メタスペースの使用率(KB)。
.sp .sp
\fBCCSC\fR: 圧縮されたクラス領域の容量(KB)。
.sp
\fBCCSU\fR: 使用されている圧縮されたクラス領域(KB)。
.sp
\fBYGC\fR: 若い世代のガベージ・コレクション・イベントの数。 \fBYGC\fR: 若い世代のガベージ・コレクション・イベントの数。
.sp .sp
\fBYGCT\fR: 若い世代のガベージ・コレクション時間。 \fBYGCT\fR: 若い世代のガベージ・コレクション時間。
...@@ -317,6 +322,12 @@ Java HotSpot VM Just\-in\-Time ...@@ -317,6 +322,12 @@ Java HotSpot VM Just\-in\-Time
.sp .sp
\fBMC\fR: メタスペースの容量(KB)。 \fBMC\fR: メタスペースの容量(KB)。
.sp .sp
\fBCCSMN\fR: 圧縮されたクラス領域の最小容量(KB)。
.sp
\fBCCSMX\fR: 圧縮されたクラス領域の最大容量(KB)。
.sp
\fBCCSC\fR: 圧縮されたクラス領域の容量(KB)。
.sp
\fBYGC\fR: 若い世代のGCイベント数。 \fBYGC\fR: 若い世代のGCイベント数。
.sp .sp
\fBFGC\fR: フルGCイベント数。 \fBFGC\fR: フルGCイベント数。
...@@ -326,11 +337,9 @@ Java HotSpot VM Just\-in\-Time ...@@ -326,11 +337,9 @@ Java HotSpot VM Just\-in\-Time
.RS 4 .RS 4
このオプションは、\fB\-gcutil\fRオプションと同じガベージ・コレクション統計データのサマリーを表示しますが、最後のガベージ・コレクション・イベントと(適用可能な場合は)現在のガベージ・コレクション・イベントの原因が含まれます。\fB\-gcutil\fRで一覧表示される列のほか、このオプションでは次の列が追加されます。 このオプションは、\fB\-gcutil\fRオプションと同じガベージ・コレクション統計データのサマリーを表示しますが、最後のガベージ・コレクション・イベントと(適用可能な場合は)現在のガベージ・コレクション・イベントの原因が含まれます。\fB\-gcutil\fRで一覧表示される列のほか、このオプションでは次の列が追加されます。
.sp .sp
ガベージ・コレクション・イベントを含むガベージ・コレクション統計データ。 \fBLGCC\fR: 最後のガベージ・コレクションの原因
.sp
\fBLGCC\fR: 最後のガベージ・コレクションの原因。
.sp .sp
\fBGCC\fR: 現在のガベージ・コレクションの原因 \fBGCC\fR: 現在のガベージ・コレクションの原因
.RE .RE
.PP .PP
\-gcnew \fIoption\fR \-gcnew \fIoption\fR
...@@ -364,7 +373,7 @@ New ...@@ -364,7 +373,7 @@ New
.RS 4 .RS 4
New世代領域サイズの統計データ。 New世代領域サイズの統計データ。
.sp .sp
NGCMN: New世代の最小容量(KB)。 \fBNGCMN\fR: New世代の最小容量(KB)。
.sp .sp
\fBNGCMX\fR: New世代の最大容量(KB)。 \fBNGCMX\fR: New世代の最大容量(KB)。
.sp .sp
...@@ -395,6 +404,10 @@ Old ...@@ -395,6 +404,10 @@ Old
.sp .sp
\fBMU\fR: メタスペースの使用率(KB)。 \fBMU\fR: メタスペースの使用率(KB)。
.sp .sp
\fBCCSC\fR: 圧縮されたクラス領域の容量(KB)。
.sp
\fBCCSU\fR: 使用されている圧縮されたクラス領域(KB)。
.sp
\fBOC\fR: Old領域の現在の容量(KB)。 \fBOC\fR: Old領域の現在の容量(KB)。
.sp .sp
\fBOU\fR: Old領域の使用率(KB)。 \fBOU\fR: Old領域の使用率(KB)。
...@@ -439,6 +452,10 @@ Permanent ...@@ -439,6 +452,10 @@ Permanent
.sp .sp
\fBMC\fR: メタスペースの容量(KB)。 \fBMC\fR: メタスペースの容量(KB)。
.sp .sp
\fBCCSMN\fR: 圧縮されたクラス領域の最小容量(KB)。
.sp
\fBCCSMX\fR: 圧縮されたクラス領域の最大容量(KB)。
.sp
\fBYGC\fR: 若い世代のGCイベント数。 \fBYGC\fR: 若い世代のGCイベント数。
.sp .sp
\fBFGC\fR: フルGCイベント数。 \fBFGC\fR: フルGCイベント数。
...@@ -462,6 +479,8 @@ Permanent ...@@ -462,6 +479,8 @@ Permanent
.sp .sp
\fBM\fR: メタスペースの使用率(領域の現在の容量に対するパーセンテージ)。 \fBM\fR: メタスペースの使用率(領域の現在の容量に対するパーセンテージ)。
.sp .sp
\fBCCS\fR: 圧縮されたクラス領域の使用率(パーセンテージ)。
.sp
\fBYGC\fR: 若い世代のGCイベント数。 \fBYGC\fR: 若い世代のGCイベント数。
.sp .sp
\fBYGCT\fR: 若い世代のガベージ・コレクション時間。 \fBYGCT\fR: 若い世代のガベージ・コレクション時間。
...@@ -493,29 +512,28 @@ Java HotSpot VM ...@@ -493,29 +512,28 @@ Java HotSpot VM
.PP .PP
この例では、lvmid 21891に接続して、250ミリ秒間隔で7つのサンプルを取得し、\-\fBgcutil\fRオプションでの指定に従って出力を表示します。 この例では、lvmid 21891に接続して、250ミリ秒間隔で7つのサンプルを取得し、\-\fBgcutil\fRオプションでの指定に従って出力を表示します。
.PP .PP
この例の出力は、若い世代のコレクションが3番目と4番目のサンプル間で行われたことを示しています。コレクションには0\&.001秒かかっており、オブジェクトがEden領域(E)からOld領域(O)に昇格したため、Old領域の使用率は9\&.49%から9\&.51%に増加しています。Survivor領域は、コレクション前は12\&.44%が使用されていましたが、コレクション後の使用は7\&.74%のみです。 この例の出力は、若い世代のコレクションが3番目と4番目のサンプル間で行われたことを示しています。コレクションには0\&.078秒かかっており、オブジェクトがEden領域(E)からOld領域(O)に昇格したため、Old領域の使用率は66\&.80%から68\&.19%に増加しています。Survivor領域は、コレクション前は97\&.02%が使用されていましたが、コレクション後の使用は91\&.03%です。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
.\} .\}
.nf .nf
\fBjstat \-gcutil 21891 250 7\fR \fBjstat \-gcutil 21891 250 7\fR
\fB S0 S1 E O M YGC YGCT FGC FGCT GCT\fR \fB S0 S1 E O M CCS YGC YGCT FGC FGCT GCT \fR
\fB0\&.00 99\&.74 13\&.49 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR \fB 0\&.00 97\&.02 70\&.31 66\&.80 95\&.52 89\&.14 7 0\&.300 0 0\&.000 0\&.300\fR
\fB0\&.00 99\&.74 13\&.49 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR \fB 0\&.00 97\&.02 86\&.23 66\&.80 95\&.52 89\&.14 7 0\&.300 0 0\&.000 0\&.300\fR
\fB0\&.00 99\&.74 13\&.49 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR \fB 0\&.00 97\&.02 96\&.53 66\&.80 95\&.52 89\&.14 7 0\&.300 0 0\&.000 0\&.300\fR
\fB0\&.00 99\&.74 13\&.49 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR \fB 91\&.03 0\&.00 1\&.98 68\&.19 95\&.89 91\&.24 8 0\&.378 0 0\&.000 0\&.378\fR
\fB0\&.00 99\&.74 13\&.80 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR \fB 91\&.03 0\&.00 15\&.82 68\&.19 95\&.89 91\&.24 8 0\&.378 0 0\&.000 0\&.378\fR
\fB0\&.00 99\&.74 13\&.80 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR \fB 91\&.03 0\&.00 17\&.80 68\&.19 95\&.89 91\&.24 8 0\&.378 0 0\&.000 0\&.378\fR
\fB0\&.00 99\&.74 13\&.80 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR \fB 91\&.03 0\&.00 17\&.80 68\&.19 95\&.89 91\&.24 8 0\&.378 0 0\&.000 0\&.378\fR
.fi .fi
.if n \{\ .if n \{\
.RE .RE
.\} .\}
.SS "列ヘッダー文字列の繰返し" .SS "列ヘッダー文字列の繰返し"
.PP .PP
この例では、lvmid 21891に接続して、250ミリ秒間隔でサンプルを取得し、\fB\-gcutil\fRオプションでの指定に従って出力を表示します。さらに、\fB\-h3\fRオプションを使用して、データが3行表示されるごとに列ヘッダーを出力します。 この例では、lvmid 21891に接続して、250ミリ秒間隔でサンプルを取得し、\fB\-gcnew\fRオプションでの指定に従って出力を表示します。さらに、\fB\-h3\fRオプションを使用して、データが3行表示されるごとに列ヘッダーを出力します。
.PP .PP
この例では、ヘッダー文字列の繰返しが表示されているほか、2番目と3番目のサンプル間でYoung GCが行われたことがわかります。この継続時間は0\&.001秒でした。このコレクションでは、Survivor領域0の使用率(S0U)が適切なSurvivorサイズ(DSS)を超過することになるアクティブ・データが検出されました。この結果、オブジェクトは、Old世代(この出力には非表示)へ昇格され、殿堂入りしきい値(TT)が、31から2へ降格されました。 この例では、ヘッダー文字列の繰返しが表示されているほか、2番目と3番目のサンプル間でYoung GCが行われたことがわかります。この継続時間は0\&.001秒でした。このコレクションでは、Survivor領域0の使用率(S0U)が適切なSurvivorサイズ(DSS)を超過することになるアクティブ・データが検出されました。この結果、オブジェクトは、Old世代(この出力には非表示)へ昇格され、殿堂入りしきい値(TT)が、31から2へ降格されました。
.PP .PP
...@@ -545,7 +563,7 @@ Java HotSpot VM ...@@ -545,7 +563,7 @@ Java HotSpot VM
.PP .PP
この例では、lvmid21891へ接続し、250ミリ秒間隔で3つのサンプルを取得しています。\fB\-t\fRオプションを使用して、最初の列にサンプルごとのタイムスタンプを表示しています。 この例では、lvmid21891へ接続し、250ミリ秒間隔で3つのサンプルを取得しています。\fB\-t\fRオプションを使用して、最初の列にサンプルごとのタイムスタンプを表示しています。
.PP .PP
Timestamp列には、ターゲットJVMの起動時からの経過時間が、秒単位でレポートされています。さらに、\fB\-gcoldcapacity\fR出力では、割当リクエストまたは昇格リクエストあるいはその両方を満たすためにヒープが拡張するたびに、Old世代の容量(OGC)とOld領域の容量(OC)とが増加していることがわかります。81番目のフル・ガベージ・コレクション(FGC)の後、Old世代の容量(OGC)は11,696 KBから13820 KBに増加しました。この世代(および領域)の最大容量は、60,544 KB (OGCMX)なので、まだ拡張できる余裕が残されています。 Timestamp列には、ターゲットJVMの起動時からの経過時間が、秒単位でレポートされています。さらに、\fB\-gcoldcapacity\fR出力では、割当リクエストまたは昇格リクエストあるいはその両方を満たすためにヒープが拡張するたびに、Old世代の容量(OGC)とOld領域の容量(OC)とが増加していることがわかります。81番目のフル・ガベージ・コレクション(FGC)の後、Old世代の容量(OGC)は11,696KBから13,820KBに増加しました。この世代(および領域)の最大容量は、60,544KB (OGCMX)なので、まだ拡張できる余裕が残されています。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
...@@ -564,7 +582,7 @@ Timestamp ...@@ -564,7 +582,7 @@ Timestamp
.PP .PP
この例は、\fB\-gcutil\fRオプションを使用して、remote\&.domainというシステム上のlvmid 40496に接続し、サンプルを秒単位で無期限に取得しています。 この例は、\fB\-gcutil\fRオプションを使用して、remote\&.domainというシステム上のlvmid 40496に接続し、サンプルを秒単位で無期限に取得しています。
.PP .PP
lvmidは、リモート・ホストの名前と結合されて、\fB40496@remote\&.domain\fRの\fIvmid\fRを構成しています。結果として、このvmidは、\fBrmi\fRプロトコルを使用して、リモート・ホスト上のデフォルトの\fBjstatd\fRサーバーと通信します。\fBjstatd\fRサーバーは、rmiregistryを使用して、デフォルトのrmiregistryポート(ポート1099)にバインドされた\fBremote\&.domain\fRに配置されます。 lvmidは、リモート・ホストの名前と結合されて、\fB40496@remote\&.domain\fRの\fIvmid\fRを構成しています。結果として、このvmidは、\fBrmi\fRプロトコルを使用して、リモート・ホスト上のデフォルトの\fBjstatd\fRサーバーと通信します。\fBjstatd\fRサーバーは、\fBrmiregistry\fRコマンドを使用して、\fBrmiregistry\fRコマンドのデフォルトのポート(ポート1099)にバインドされた\fBremote\&.domain\fRに配置されます。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: モニタリング・ツール .\" SectDesc: モニタリング・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jstatd" "1" "2013年11月21日" "JDK 8" "モニタリング・ツール" .TH "jstatd" "1" "2013年11月21日" "JDK 8" "モニタリング・ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Javaトラブルシューティング、プロファイリング、モニタリングおよび管理ツール .\" SectDesc: Javaトラブルシューティング、プロファイリング、モニタリングおよび管理ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "jvisualvm" "1" "2013年11月21日" "JDK 8" "Javaトラブルシューティング、プロファイリング、モニタリン" .TH "jvisualvm" "1" "2013年11月21日" "JDK 8" "Javaトラブルシューティング、プロファイリング、モニタリン"
...@@ -51,7 +52,7 @@ ...@@ -51,7 +52,7 @@
.\" * MAIN CONTENT STARTS HERE * .\" * MAIN CONTENT STARTS HERE *
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.SH "名前" .SH "名前"
jvisualvm \- Javaアプリケーションを視覚的にモニターし、トラブルシューティングとプロファイリングを行います。 jvisualvm \- Javaアプリケーションを視覚的にモニター、トラブルシュートおよびプロファイルします。
.SH "概要" .SH "概要"
.sp .sp
.if n \{\ .if n \{\
......
...@@ -23,14 +23,15 @@ ...@@ -23,14 +23,15 @@
.\" .\"
.\" Title: keytool .\" Title: keytool
.\" Language: Japanese .\" Language: Japanese
.\" Date: 2013年8月6 .\" Date: 2015年3月3
.\" SectDesc: セキュリティ・ツール .\" SectDesc: セキュリティ・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "keytool" "1" "2013年8月6日" "JDK 8" "セキュリティ・ツール" .TH "keytool" "1" "2015年3月3日" "JDK 8" "セキュリティ・ツール"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
...@@ -375,7 +376,7 @@ keytool \- ...@@ -375,7 +376,7 @@ keytool \-
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
イタリックになっていないすべての項目、または中カッコか角カッコで囲まれているすべての項目は、そのとおりに指定する必要があります。 イタリックになっていないすべての項目、または中カッコか角カッコで囲まれているすべての項目は、そのとおりに指定する必要があります。
.RE .RE
.sp .sp
.RS 4 .RS 4
...@@ -408,11 +409,19 @@ keytool \- ...@@ -408,11 +409,19 @@ keytool \-
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
イタリックの項目の実際の値(オプションの値)は、指定する必要があります。たとえば、\fB\-printcert\fRコマンドの形式は次のとおりです。 イタリックの項目の実際の値(オプションの値)は、指定する必要があります。たとえば、\fB\-printcert\fRコマンドの形式は次のとおりです。
.sp .sp
\fBkeytool \-printcert {\-file cert_file} {\-v}\fR .if n \{\
.RS 4
.\}
.nf
\fBkeytool \-printcert {\-file \fR\fB\fIcert_file\fR\fR\fB} {\-v}\fR
.fi
.if n \{\
.RE
.\}
.sp .sp
\fB\-printcert\fRコマンドを指定する場合は、\fBcert_file\fRを実際のファイル名で置き換えます。例: \fB\-printcert\fRコマンドを指定する場合は、\fIcert_file\fRを実際のファイル名で置き換えます。例:
\fBkeytool \-printcert \-file VScert\&.cer\fR \fBkeytool \-printcert \-file VScert\&.cer\fR
.RE .RE
.sp .sp
...@@ -624,8 +633,7 @@ EKU ...@@ -624,8 +633,7 @@ EKU
SANまたはSubjectAlternativeName SANまたはSubjectAlternativeName
.RS 4 .RS 4
\fB値\fR: \fB値\fR:
\fBtype\fR:\fBvalue\fR \fBtype\fR:\fBvalue\fR(t\fBype:value\fR)*、\fBtype\fRには\fBEMAIL\fR、\fBURI\fR、\fBDNS\fR、\fBIP\fRまたは\fBOID\fRを指定できます。\fBvalue\fR引数は、\fBtype\fRの文字列形式の値です。
(t\fBype:value\fR)*、\fBtype\fRには\fBEMAIL\fR、\fBURI\fR、\fBDNS\fR、\fBIP\fRまたは\fBOID\fRを指定できます。\fBvalue\fR引数は、\fBtype\fRの文字列形式の値です。
.RE .RE
.PP .PP
IANまたはIssuerAlternativeName IANまたはIssuerAlternativeName
...@@ -662,8 +670,66 @@ AIA ...@@ -662,8 +670,66 @@ AIA
.PP .PP
\-gencert \-gencert
.RS 4 .RS 4
\fB{\-rfc} {\-infile infile} {\-outfile outfile} {\-alias alias} {\-sigalg sigalg} {\-dname dname} {\-startdate startdate {\-ext ext}* {\-validity valDays} [\-keypass keypass] {\-keystore keystore} [\-storepass storepass] {\-storetype storetype} {\-providername provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-rfc} {\-infile \fR\fB\fIinfile\fR\fR\fB} {\-outfile \fR\fB\fIoutfile\fR\fR\fB} {\-alias \fR\fB\fIalias\fR\fR\fB} {\-sigalg \fR\fB\fIsigalg\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-dname \fR\fB\fIdname\fR\fR\fB} {\-startdate \fR\fB\fIstartdate\fR\fR\fB {\-ext \fR\fB\fIext\fR\fR\fB}* {\-validity \fR\fB\fIvalDays\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB[\-keypass \fR\fB\fIkeypass\fR\fR\fB] {\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-providername \fR\fB\fIprovider_name\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-v} {\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
証明書リクエスト・ファイル(\fBkeytool\fR 証明書リクエスト・ファイル(\fBkeytool\fR
\fB\-certreq\fRコマンドで作成可能)に対するレスポンスとして証明書を生成します。このコマンドは、\fIinfile\fRから(省略した場合は、標準入力から)リクエストを読み込み、別名の秘密鍵を使用してそのリクエストに署名して、X\&.509証明書を\fIoutfile\fRに(省略した場合は、標準出力に)出力します。\fB\-rfc\fRを指定した場合、出力形式はBASE64符号化のPEMになります。それ以外の場合は、バイナリDERが作成されます。 \fB\-certreq\fRコマンドで作成可能)に対するレスポンスとして証明書を生成します。このコマンドは、\fIinfile\fRから(省略した場合は、標準入力から)リクエストを読み込み、別名の秘密鍵を使用してそのリクエストに署名して、X\&.509証明書を\fIoutfile\fRに(省略した場合は、標準出力に)出力します。\fB\-rfc\fRを指定した場合、出力形式はBASE64符号化のPEMになります。それ以外の場合は、バイナリDERが作成されます。
.sp .sp
...@@ -724,8 +790,66 @@ AIA ...@@ -724,8 +790,66 @@ AIA
.PP .PP
\-genkeypair \-genkeypair
.RS 4 .RS 4
\fB{\-alias alias} {\-keyalg keyalg} {\-keysize keysize} {\-sigalg sigalg} [\-dname dname] [\-keypass keypass] {\-startdate value} {\-ext ext}* {\-validity valDays} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-alias \fR\fB\fIalias\fR\fR\fB} {\-keyalg \fR\fB\fIkeyalg\fR\fR\fB} {\-keysize \fR\fB\fIkeysize\fR\fR\fB} {\-sigalg \fR\fB\fIsigalg\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB[\-dname \fR\fB\fIdname\fR\fR\fB] [\-keypass \fR\fB\fIkeypass\fR\fR\fB] {\-startdate \fR\fB\fIvalue\fR\fR\fB} {\-ext \fR\fB\fIext\fR\fR\fB}*\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-validity \fR\fB\fIvalDays\fR\fR\fB} {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB[\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-v} {\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
鍵のペア(公開鍵および関連する秘密鍵)を生成します。公開鍵はX\&.509 v3自己署名証明書でラップされます。証明書は、単一の要素を持つ証明書チェーンとして格納されます。この証明書チェーンと秘密鍵は、aliasで特定される新しいキーストア・エントリに格納されます。 鍵のペア(公開鍵および関連する秘密鍵)を生成します。公開鍵はX\&.509 v3自己署名証明書でラップされます。証明書は、単一の要素を持つ証明書チェーンとして格納されます。この証明書チェーンと秘密鍵は、aliasで特定される新しいキーストア・エントリに格納されます。
.sp .sp
\fBkeyalg\fR値は鍵ペアの生成に使用するアルゴリズムを、\fBkeysize\fR値は生成する各鍵のサイズを、それぞれ指定します。\fBsigalg\fR値は、自己署名証明書に署名を付けるために使用するアルゴリズムを指定します。このアルゴリズムは\fBkeyalg\fR値と互換性がある必要があります。 \fBkeyalg\fR値は鍵ペアの生成に使用するアルゴリズムを、\fBkeysize\fR値は生成する各鍵のサイズを、それぞれ指定します。\fBsigalg\fR値は、自己署名証明書に署名を付けるために使用するアルゴリズムを指定します。このアルゴリズムは\fBkeyalg\fR値と互換性がある必要があります。
...@@ -758,7 +882,7 @@ AIA ...@@ -758,7 +882,7 @@ AIA
.if n \{\ .if n \{\
.RE .RE
.\} .\}
2番目の形式では、ユーザーは、年/月/日と時間:分:秒の2つの部分からなる正確な発行時刻を設定します(ローカルのタイム・ゾーンを使用)。ユーザーは、1つの部分のみを指定できます。これは、もう1つの部分は現在の日付(または時刻)と同じになるということです。ユーザーは、形式の定義に示されているように、桁数を厳密に指定する必要があります(短い場合は0で埋めます)。日付と時刻の両方が指定された状態で、2つの部分の間に空白文字が1つ(1つのみ)あります。時間は常に24時間形式で指定してください。 2番目の形式では、ユーザーは、年/月/日と時間:分:秒の2つの部分で厳密な開始時刻を設定します(地元の時間帯を使用)。ユーザーは、1つの部分のみを指定できます。これは、もう1つの部分は現在の日付(または時刻)と同じになるということです。ユーザーは、形式の定義に示されているように、桁数を厳密に指定する必要があります(短い場合は0で埋めます)。日付と時刻の両方が指定された状態で、2つの部分の間に空白文字が1つ(1つのみ)あります。時間は常に24時間形式で指定してください。
.sp .sp
オプションを指定しないと、開始日付は現在の時刻になります。オプションは、最大で1回指定できます。 オプションを指定しないと、開始日付は現在の時刻になります。オプションは、最大で1回指定できます。
.sp .sp
...@@ -769,8 +893,46 @@ AIA ...@@ -769,8 +893,46 @@ AIA
.PP .PP
\-genseckey \-genseckey
.RS 4 .RS 4
\fB\-genseckey {\-alias alias} {\-keyalg keyalg} {\-keysize keysize} [\-keypass keypass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-alias \fR\fB\fIalias\fR\fR\fB} {\-keyalg \fR\fB\fIkeyalg\fR\fR\fB} {\-keysize \fR\fB\fIkeysize\fR\fR\fB} [\-keypass \fR\fB\fIkeypass\fR\fR\fB]\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}} {\-v}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
秘密鍵を生成し、それを新しい\fBKeyStore\&.SecretKeyEntry\fR(\fBalias\fRで特定される)内に格納します。 秘密鍵を生成し、それを新しい\fBKeyStore\&.SecretKeyEntry\fR(\fBalias\fRで特定される)内に格納します。
.sp .sp
\fBkeyalg\fR値は鍵ペアの生成に使用するアルゴリズムを、\fBkeysize\fR値は生成する各鍵のサイズを、それぞれ指定します。\fBkeypass\fR値は、秘密鍵を保護するパスワードです。パスワードを指定しなかった場合は、パスワードの入力を求められます。このとき、[Return]キーを押すと、\fBkeystore\fRのパスワードと同じパスワードが鍵のパスワードに設定されます。\fBkeypass\fR値は、6文字以上にする必要があります。 \fBkeyalg\fR値は鍵ペアの生成に使用するアルゴリズムを、\fBkeysize\fR値は生成する各鍵のサイズを、それぞれ指定します。\fBkeypass\fR値は、秘密鍵を保護するパスワードです。パスワードを指定しなかった場合は、パスワードの入力を求められます。このとき、[Return]キーを押すと、\fBkeystore\fRのパスワードと同じパスワードが鍵のパスワードに設定されます。\fBkeypass\fR値は、6文字以上にする必要があります。
...@@ -778,8 +940,56 @@ AIA ...@@ -778,8 +940,56 @@ AIA
.PP .PP
\-importcert \-importcert
.RS 4 .RS 4
\fB\-importcert {\-alias alias} {\-file cert_file} [\-keypass keypass] {\-noprompt} {\-trustcacerts} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-alias \fR\fB\fIalias\fR\fR\fB} {\-file \fR\fB\fIcert_file\fR\fR\fB} [\-keypass \fR\fB\fIkeypass\fR\fR\fB] {\-noprompt} {\-trustcacerts}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-v} {\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
ファイル\fBcert_file\fRから証明書または証明書チェーン(証明書チェーンの場合は、PKCS#7形式の応答または一連のX\&.509証明書で提供されるもの)を読み込み、\fBalias\fRによって特定される\fBkeystore\fRエントリに格納します。ファイルが指定されていない場合は、\fBstdin\fRから証明書または証明書チェーンを読み込みます。 ファイル\fBcert_file\fRから証明書または証明書チェーン(証明書チェーンの場合は、PKCS#7形式の応答または一連のX\&.509証明書で提供されるもの)を読み込み、\fBalias\fRによって特定される\fBkeystore\fRエントリに格納します。ファイルが指定されていない場合は、\fBstdin\fRから証明書または証明書チェーンを読み込みます。
.sp .sp
\fBkeytool\fRコマンドでは、X\&.509 v1、v2、v3の証明書、およびPKCS#7形式の証明書から構成されているPKCS#7形式の証明書チェーンをインポートできます。インポートするデータは、バイナリ符号化方式、または出力可能符号化方式(Base64符号化とも呼ばれる)のどちらかで提供する必要があります。出力可能符号化方式は、インターネットRFC 1421証明書符号化規格で定義されています。この符号化方式の場合、証明書は\fB\-\fR\fB\-\-\-\-BEGIN\fRで始まる文字列で開始され、\fB\-\-\-\-\-END\fRで始まる文字列で終了する必要があります。 \fBkeytool\fRコマンドでは、X\&.509 v1、v2、v3の証明書、およびPKCS#7形式の証明書から構成されているPKCS#7形式の証明書チェーンをインポートできます。インポートするデータは、バイナリ符号化方式、または出力可能符号化方式(Base64符号化とも呼ばれる)のどちらかで提供する必要があります。出力可能符号化方式は、インターネットRFC 1421証明書符号化規格で定義されています。この符号化方式の場合、証明書は\fB\-\fR\fB\-\-\-\-BEGIN\fRで始まる文字列で開始され、\fB\-\-\-\-\-END\fRで始まる文字列で終了する必要があります。
...@@ -791,44 +1001,216 @@ AIA ...@@ -791,44 +1001,216 @@ AIA
.PP .PP
\-importpassword \-importpassword
.RS 4 .RS 4
\fB{\-alias alias} [\-keypass keypass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption}\fR
.sp .sp
パスフレーズをインポートし、\fBalias\fRで識別される新規\fBKeyStore\&.SecretKeyEntry\fRに格納します。パスフレーズは、標準入力ストリームを介して提供できます。または、ユーザーにそのプロンプトが表示されます。\fBkeypass\fRは、インポートされるパスフレーズの保護に使用されるパスワードです。パスワードを指定しなかった場合は、パスワードの入力を求められます。このとき、[Return]キーを押すと、\fBkeystore\fRのパスワードと同じパスワードが鍵のパスワードに設定されます。\fBkeypass\fRは、6文字以上にする必要があります。 .if n \{\
.RE
.PP
\-importkeystore
.RS 4 .RS 4
\fB{\-srcstoretype srcstoretype} {\-deststoretype deststoretype} [\-srcstorepass srcstorepass] [\-deststorepass deststorepass] {\-srcprotected} {\-destprotected} {\-srcalias srcalias {\-destalias destalias} [\-srckeypass srckeypass] } [\-destkeypass destkeypass] {\-noprompt} {\-srcProviderName src_provider_name} {\-destProviderName dest_provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption}\fR .\}
.sp .nf
ソース・キーストアからターゲット・キーストアへ、単一のエントリまたはすべてのエントリをインポートします。 \fB{\-alias \fR\fB\fIalias\fR\fR\fB} [\-keypass \fR\fB\fIkeypass\fR\fR\fB] {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB}\fR
.sp .fi
\fB\-srcalias\fRオプションが指定された場合、このコマンドは、その別名で特定される単一のエントリをターゲット・キーストアにインポートします。\fBdestalias\fR経由でターゲット別名が指定されなかった場合、\fBsrcalias\fRがターゲット別名として使用されます。ソースのエントリがパスワードで保護されていた場合、\fBsrckeypass\fRを使用してそのエントリが回復されます。\fIsrckeypass\fRが指定されなかった場合、\fBkeytool\fRコマンドは\fBsrcstorepass\fRを使用してそのエントリを回復しようとします。\fBsrcstorepass\fRが指定されなかったか正しくなかった場合、ユーザーはパスワードの入力を求められます。ターゲットのエントリは\fBdestkeypass\fRによって保護されます。\fBdestkeypass\fRが指定されなかった場合、ターゲット・エントリはソース・エントリのパスワードによって保護されます。たとえば、ほとんどのサード・パーティ・ツールでは、PKCS #12キーストアで\fBstorepass\fRと\fBkeypass\fRが同じである必要があります。これらのツールのPKCS #12キーストアを作成する場合は、常に\fB\-destkeypass\fRと\fB\-deststorepass\fRが同じになるように指定します。 .if n \{\
.sp .RE
\fB\-srcalias\fRオプションが指定されなかった場合、ソース・キーストア内のすべてのエントリがターゲット・キーストア内にインポートされます。各ターゲット・エントリは対応するソース・エントリの別名の下に格納されます。ソースのエントリがパスワードで保護されていた場合、\fBsrcstorepass\fRを使用してそのエントリが回復されます。\fBsrcstorepass\fRが指定されなかったか正しくなかった場合、ユーザーはパスワードの入力を求められます。ソース・キーストア内のあるエントリ・タイプがターゲット・キーストアでサポートされていない場合や、あるエントリをターゲット・キーストアに格納する際にエラーが発生した場合、ユーザーはそのエントリをスキップして処理を続行するか、または中止するかの選択を求められます。ターゲット・エントリはソース・エントリのパスワードによって保護されます。 .\}
.sp
ターゲット別名がターゲット・キーストア内にすでに存在していた場合、ユーザーは、そのエントリを上書きするか、あるいは異なる別名の下で新しいエントリを作成するかの選択を求められます。
.sp .sp
.if n \{\
\fB\-noprompt\fRオプションを指定した場合、ユーザーは新しいターゲット別名の入力を求められません。既存のエントリがそのターゲット別名で上書きされます。インポートできないエントリはスキップされ、警告が出力されます。 .RS 4
.\}
.nf
\fB[\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR
.fi
.if n \{\
.RE .RE
.PP .\}
\-printcertreq .sp
.if n \{\
.RS 4 .RS 4
\fB{\-file file}\fR .\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR
.fi
.if n \{\
.RE
.\}
.sp .sp
PKCS#10形式の証明書リクエストの内容を出力します。このリクエストは、\fBkeytool\fR .if n \{\
\fB\-certreq\fRコマンドで生成できます。このコマンドは、ファイルからリクエストを読み取ります。ファイルが存在しない場合、リクエストは標準入力から読み取られます。 .RS 4
.\}
.nf
\fB{\-v} {\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
パスフレーズをインポートし、\fBalias\fRで識別される新規\fBKeyStore\&.SecretKeyEntry\fRに格納します。パスフレーズは、標準入力ストリームを介して提供できます。または、ユーザーにそのプロンプトが表示されます。\fBkeypass\fRは、インポートされるパスフレーズの保護に使用されるパスワードです。パスワードを指定しなかった場合は、パスワードの入力を求められます。このとき、[Return]キーを押すと、\fBkeystore\fRのパスワードと同じパスワードが鍵のパスワードに設定されます。\fBkeypass\fRは、6文字以上にする必要があります。
.RE .RE
.PP .PP
\-certreq \-importkeystore
.RS 4 .RS 4
\fB{\-alias alias} {\-dname dname} {\-sigalg sigalg} {\-file certreq_file} [\-keypass keypass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption}\fR
.sp .sp
PKCS#10形式を使用して証明書署名リクエスト(CSR)を生成します。 .if n \{\
.sp .RS 4
CSRは、証明書発行局(CA)に送信することを目的としたものです。CAは、証明書要求者を(通常はオフラインで)認証し、証明書または証明書チェーンを送り返します。この証明書または証明書チェーンは、キーストア内の既存の証明書チェーン(最初は1つの自己署名証明書から構成される)に置き換えて使用します。 .\}
.nf
\fB{\-srcstoretype \fR\fB\fIsrcstoretype\fR\fR\fB} {\-deststoretype \fR\fB\fIdeststoretype\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp .sp
aliasに関連付けられた秘密鍵は、PKCS#10証明書リクエストを作成するのに使用されます。秘密鍵にアクセスするには、正しいパスワードを指定する必要があります。コマンド行で\fBkeypass\fRを指定しておらず、秘密鍵のパスワードがキーストアのパスワードと異なる場合は、秘密鍵のパスワードの入力を求められます。\fBdname\fRが指定されている場合は、それがCSRで主体として使用されます。それ以外の場合は、別名に関連付けられたX\&.500識別名が使用されます。 .if n \{\
.RS 4
.\}
.nf
\fB[\-srcstorepass \fR\fB\fIsrcstorepass\fR\fR\fB] [\-deststorepass \fR\fB\fIdeststorepass\fR\fR\fB] {\-srcprotected}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-destprotected} \fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-srcalias \fR\fB\fIsrcalias\fR\fR\fB {\-destalias \fR\fB\fIdestalias\fR\fR\fB} [\-srckeypass \fR\fB\fIsrckeypass\fR\fR\fB]} \fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB[\-destkeypass \fR\fB\fIdestkeypass\fR\fR\fB] {\-noprompt}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-srcProviderName \fR\fB\fIsrc_provider_name\fR\fR\fB} {\-destProviderName \fR\fB\fIdest_provider_name\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}} {\-v}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
ソース・キーストアからターゲット・キーストアへ、単一のエントリまたはすべてのエントリをインポートします。
.sp
\fB\-srcalias\fRオプションが指定された場合、このコマンドは、その別名で特定される単一のエントリをターゲット・キーストアにインポートします。\fBdestalias\fR経由でターゲット別名が指定されなかった場合、\fBsrcalias\fRがターゲット別名として使用されます。ソースのエントリがパスワードで保護されていた場合、\fBsrckeypass\fRを使用してそのエントリが回復されます。\fIsrckeypass\fRが指定されなかった場合、\fBkeytool\fRコマンドは\fBsrcstorepass\fRを使用してそのエントリを回復しようとします。\fBsrcstorepass\fRが指定されなかったか正しくなかった場合、ユーザーはパスワードの入力を求められます。ターゲットのエントリは\fBdestkeypass\fRによって保護されます。\fBdestkeypass\fRが指定されなかった場合、ターゲット・エントリはソース・エントリのパスワードによって保護されます。たとえば、ほとんどのサード・パーティ・ツールでは、PKCS #12キーストアで\fBstorepass\fRと\fBkeypass\fRが同じである必要があります。これらのツールのPKCS #12キーストアを作成する場合は、常に\fB\-destkeypass\fRと\fB\-deststorepass\fRが同じになるように指定します。
.sp
\fB\-srcalias\fRオプションが指定されなかった場合、ソース・キーストア内のすべてのエントリがターゲット・キーストア内にインポートされます。各ターゲット・エントリは対応するソース・エントリの別名の下に格納されます。ソースのエントリがパスワードで保護されていた場合、\fBsrcstorepass\fRを使用してそのエントリが回復されます。\fBsrcstorepass\fRが指定されなかったか正しくなかった場合、ユーザーはパスワードの入力を求められます。ソース・キーストア内のあるエントリ・タイプがターゲット・キーストアでサポートされていない場合や、あるエントリをターゲット・キーストアに格納する際にエラーが発生した場合、ユーザーはそのエントリをスキップして処理を続行するか、または中止するかの選択を求められます。ターゲット・エントリはソース・エントリのパスワードによって保護されます。
.sp
ターゲット別名がターゲット・キーストア内にすでに存在していた場合、ユーザーは、そのエントリを上書きするか、あるいは異なる別名の下で新しいエントリを作成するかの選択を求められます。
.sp
\fB\-noprompt\fRオプションを指定した場合、ユーザーは新しいターゲット別名の入力を求められません。既存のエントリがそのターゲット別名で上書きされます。インポートできないエントリはスキップされ、警告が出力されます。
.RE
.PP
\-printcertreq
.RS 4
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-file \fR\fB\fIfile\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
PKCS#10形式の証明書リクエストの内容を出力します。このリクエストは、\fBkeytool\fR
\fB\-certreq\fRコマンドで生成できます。このコマンドは、ファイルからリクエストを読み取ります。ファイルが存在しない場合、リクエストは標準入力から読み取られます。
.RE
.PP
\-certreq
.RS 4
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-alias \fR\fB\fIalias\fR\fR\fB} {\-dname \fR\fB\fIdname\fR\fR\fB} {\-sigalg \fR\fB\fIsigalg\fR\fR\fB} {\-file \fR\fB\fIcertreq_file\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB[\-keypass \fR\fB\fIkeypass\fR\fR\fB] {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB[\-storepass \fR\fB\fIstorepass\fR\fR\fB] {\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-v} {\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
PKCS#10形式を使用して証明書署名リクエスト(CSR)を生成します。
.sp
CSRは、証明書発行局(CA)に送信することを目的としたものです。CAは、証明書要求者を(通常はオフラインで)認証し、証明書または証明書チェーンを送り返します。この証明書または証明書チェーンは、キーストア内の既存の証明書チェーン(最初は1つの自己署名証明書から構成される)に置き換えて使用します。
.sp
aliasに関連付けられた秘密鍵は、PKCS#10証明書リクエストを作成するのに使用されます。秘密鍵にアクセスするには、正しいパスワードを指定する必要があります。コマンド行で\fBkeypass\fRを指定しておらず、秘密鍵のパスワードがキーストアのパスワードと異なる場合は、秘密鍵のパスワードの入力を求められます。\fBdname\fRが指定されている場合は、それがCSRで主体として使用されます。それ以外の場合は、別名に関連付けられたX\&.500識別名が使用されます。
.sp .sp
\fBsigalg\fR値には、CSRに署名を付けるときに使用するアルゴリズムを指定します。 \fBsigalg\fR値には、CSRに署名を付けるときに使用するアルゴリズムを指定します。
.sp .sp
...@@ -839,8 +1221,46 @@ CA ...@@ -839,8 +1221,46 @@ CA
.PP .PP
\-exportcert \-exportcert
.RS 4 .RS 4
\fB{\-alias alias} {\-file cert_file} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-rfc} {\-v} {\-protected} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-alias \fR\fB\fIalias\fR\fR\fB} {\-file \fR\fB\fIcert_file\fR\fR\fB} {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB[\-storepass \fR\fB\fIstorepass\fR\fR\fB] {\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-rfc} {\-v} {\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
\fIalias\fRに関連付けられた証明書をキーストアから読み込み、ファイルcert_fileに格納します。ファイルが指定されていない場合は、\fBstdout\fRに証明書が出力されます。 \fIalias\fRに関連付けられた証明書をキーストアから読み込み、ファイルcert_fileに格納します。ファイルが指定されていない場合は、\fBstdout\fRに証明書が出力されます。
.sp .sp
デフォルトでは、証明書はバイナリ符号化で出力されます。\fB\-rfc\fRオプションが指定されている場合、出力可能符号化方式の出力はインターネットRFC 1421証明書符号化規格で定義されます。 デフォルトでは、証明書はバイナリ符号化で出力されます。\fB\-rfc\fRオプションが指定されている場合、出力可能符号化方式の出力はインターネットRFC 1421証明書符号化規格で定義されます。
...@@ -852,8 +1272,46 @@ CA ...@@ -852,8 +1272,46 @@ CA
.PP .PP
\-list \-list
.RS 4 .RS 4
\fB{\-alias alias} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v | \-rfc} {\-protected} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-alias \fR\fB\fIalias\fR\fR\fB} {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-v | \-rfc} {\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
\fBalias\fRで特定されるキーストア・エントリの内容を\fBstdout\fRに出力します。\fBalias\fRが指定されていない場合は、キーストア全体の内容が表示されます。 \fBalias\fRで特定されるキーストア・エントリの内容を\fBstdout\fRに出力します。\fBalias\fRが指定されていない場合は、キーストア全体の内容が表示されます。
.sp .sp
このコマンドは、デフォルトでは証明書のSHA1フィンガープリントを表示します。 このコマンドは、デフォルトでは証明書のSHA1フィンガープリントを表示します。
...@@ -864,8 +1322,26 @@ CA ...@@ -864,8 +1322,26 @@ CA
.PP .PP
\-printcert \-printcert
.RS 4 .RS 4
\fB{\-file cert_file | \-sslserver host[:port]} {\-jarfile JAR_file {\-rfc} {\-v} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-file \fR\fB\fIcert_file\fR\fR\fB | \-sslserver \fR\fB\fIhost\fR\fR\fB[:\fR\fB\fIport\fR\fR\fB]} {\-jarfile \fR\fB\fIJAR_file\fR\fR\fB {\-rfc} {\-v}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
ファイルcert_file、host:portにあるSSLサーバー、または署名付きJARファイル\fBJAR_file\fR(\fB\-jarfile\fRオプションを指定)から証明書を読み込み、人間が読むことのできる形式で証明書の内容を表示します。ポートが指定されていない場合は、標準のHTTPSポート443が想定されます。\fB\-sslserver\fRおよび\-fileオプションを同時に指定することはできません。それ以外の場合、エラーが報告されます。オプションが指定されていない場合は、\fBstdin\fRから証明書を読み込みます。 ファイルcert_file、host:portにあるSSLサーバー、または署名付きJARファイル\fBJAR_file\fR(\fB\-jarfile\fRオプションを指定)から証明書を読み込み、人間が読むことのできる形式で証明書の内容を表示します。ポートが指定されていない場合は、標準のHTTPSポート443が想定されます。\fB\-sslserver\fRおよび\-fileオプションを同時に指定することはできません。それ以外の場合、エラーが報告されます。オプションが指定されていない場合は、\fBstdin\fRから証明書を読み込みます。
.sp .sp
\fB\-rfc\fRが指定されている場合、\fBkeytool\fRコマンドは、インターネットRFC 1421証明書符号化標準で定義されているように、PEMモードで証明書を出力します。インターネットRFC 1421証明書符号化規格を参照してください。 \fB\-rfc\fRが指定されている場合、\fBkeytool\fRコマンドは、インターネットRFC 1421証明書符号化標準で定義されているように、PEMモードで証明書を出力します。インターネットRFC 1421証明書符号化規格を参照してください。
...@@ -881,8 +1357,16 @@ SSL ...@@ -881,8 +1357,16 @@ SSL
.PP .PP
\-printcrl \-printcrl
.RS 4 .RS 4
\fB\-file crl_ {\-v}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB\-file \fR\fB\fIcrl_\fR\fR\fB {\-v}\fR
.fi
.if n \{\
.RE
.\}
ファイル\fBcrl_\fRから証明書失効リスト(CRL)を読み込みます。CRLは、発行したCAによって失効されたデジタル証明書のリストです。CAは、\fBcrl_\fRを生成します。 ファイル\fBcrl_\fRから証明書失効リスト(CRL)を読み込みます。CRLは、発行したCAによって失効されたデジタル証明書のリストです。CAは、\fBcrl_\fRを生成します。
.sp .sp
\fB注意:\fR \fB注意:\fR
...@@ -891,15 +1375,91 @@ SSL ...@@ -891,15 +1375,91 @@ SSL
.PP .PP
\-storepasswd \-storepasswd
.RS 4 .RS 4
\fB[\-new new_storepass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB[\-new \fR\fB\fInew_storepass\fR\fR\fB] {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB[\-storepass \fR\fB\fIstorepass\fR\fR\fB] {\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-v} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
キーストアの内容の整合性を保護するために使用するパスワードを変更します。\fBnew_storepass\fRには、新しいパスワードを指定します。new_storepassは、6文字以上である必要があります。 キーストアの内容の整合性を保護するために使用するパスワードを変更します。\fBnew_storepass\fRには、新しいパスワードを指定します。new_storepassは、6文字以上である必要があります。
.RE .RE
.PP .PP
\-keypasswd \-keypasswd
.RS 4 .RS 4
\fB{\-alias alias} [\-keypass old_keypass] [\-new new_keypass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-alias \fR\fB\fIalias\fR\fR\fB} [\-keypass \fR\fB\fIold_keypass\fR\fR\fB] [\-new \fR\fB\fInew_keypass\fR\fR\fB] {\-storetype \fR\fB\fIstoretype\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB] {\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}} {\-v}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
\fBalias\fRによって特定される非公開/秘密鍵を保護するためのパスワードを、\fBold_keypass\fRから\fBnew_keypass\fRに変更します。new_keypassは、6文字以上である必要があります。 \fBalias\fRによって特定される非公開/秘密鍵を保護するためのパスワードを、\fBold_keypass\fRから\fBnew_keypass\fRに変更します。new_keypassは、6文字以上である必要があります。
.sp .sp
コマンド行で\fB\-keypass\fRオプションを指定しておらず、鍵のパスワードがキーストアのパスワードと異なる場合は、鍵のパスワードの入力を求められます。 コマンド行で\fB\-keypass\fRオプションを指定しておらず、鍵のパスワードがキーストアのパスワードと異なる場合は、鍵のパスワードの入力を求められます。
...@@ -909,15 +1469,91 @@ SSL ...@@ -909,15 +1469,91 @@ SSL
.PP .PP
\-delete \-delete
.RS 4 .RS 4
\fB[\-alias alias] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB[\-alias \fR\fB\fIalias\fR\fR\fB] {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerName \fR\fB\fIprovider_name\fR\fR\fB} \fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-v} {\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
\fBalias\fRによって特定されるエントリをキーストアから削除します。コマンド行で別名を指定しなかった場合は、別名の入力を求められます。 \fBalias\fRによって特定されるエントリをキーストアから削除します。コマンド行で別名を指定しなかった場合は、別名の入力を求められます。
.RE .RE
.PP .PP
\-changealias \-changealias
.RS 4 .RS 4
\fB{\-alias alias} [\-destalias destalias] [\-keypass keypass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption}\fR
.sp .sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-alias \fR\fB\fIalias\fR\fR\fB} [\-destalias \fR\fB\fIdestalias\fR\fR\fB] [\-keypass \fR\fB\fIkeypass\fR\fR\fB] {\-storetype \fR\fB\fIstoretype\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB] {\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}} {\-v}\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
\fB{\-protected} {\-Jjavaoption}\fR
.fi
.if n \{\
.RE
.\}
指定された\fBalias\fRから新しい別名\fBdestalias\fRへ、既存のキーストア・エントリを移動します。ターゲット別名を指定しなかった場合、ターゲット別名の入力を求められます。元のエントリがエントリ・パスワードで保護されていた場合、\fB\-keypass\fRオプションでそのパスワードを指定できます。鍵パスワードが指定されなかった場合、\fBstorepass\fR(指定された場合)がまず試みられます。その試みが失敗すると、ユーザーはパスワードの入力を求められます。 指定された\fBalias\fRから新しい別名\fBdestalias\fRへ、既存のキーストア・エントリを移動します。ターゲット別名を指定しなかった場合、ターゲット別名の入力を求められます。元のエントリがエントリ・パスワードで保護されていた場合、\fB\-keypass\fRオプションでそのパスワードを指定できます。鍵パスワードが指定されなかった場合、\fBstorepass\fR(指定された場合)がまず試みられます。その試みが失敗すると、ユーザーはパスワードの入力を求められます。
.RE .RE
.PP .PP
...@@ -971,7 +1607,7 @@ SSL ...@@ -971,7 +1607,7 @@ SSL
以降では、オプションを指定しないで\fB\-genkeypair\fRコマンドを実行したものとして例を示します。情報の入力を求められた場合は、最初に示した\fB\-genkeypair\fRコマンドの値を入力したものとします。たとえば識別名には\fBcn=Mark Jones\fR、\fBou=Java\fR、\fBo=Oracle\fR、\fBc=US\fRと指定します。 以降では、オプションを指定しないで\fB\-genkeypair\fRコマンドを実行したものとして例を示します。情報の入力を求められた場合は、最初に示した\fB\-genkeypair\fRコマンドの値を入力したものとします。たとえば識別名には\fBcn=Mark Jones\fR、\fBou=Java\fR、\fBo=Oracle\fR、\fBc=US\fRと指定します。
.SS "CAからの署名付き証明書のリクエスト" .SS "CAからの署名付き証明書のリクエスト"
.PP .PP
自己署名証明書を作成する鍵のペアの生成。証明書に証明書発行局(CA)の署名が付いていれば、他のユーザーから証明書が信頼される可能性も高くなります。CAの署名を取得するには、まず、証明書署名リクエスト(CSR)を生成します。たとえば、次のようにします。 自己署名証明書を作成する鍵のペアの生成。証明書に認証局(CA)の署名が付いていれば、他のユーザーから証明書が信頼される可能性も高くなります。CAの署名を取得するには、まず、証明書署名リクエスト(CSR)を生成します。たとえば、次のようにします。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
...@@ -1015,7 +1651,7 @@ CA ...@@ -1015,7 +1651,7 @@ CA
.PP .PP
\fBcacerts\fRキーストア・ファイルは、いくつかのVeriSignルートCA証明書を含んだ状態で出荷されているので、VeriSignの証明書を、信頼できる証明書としてキーストア内にインポートする必要がない場合があります。ただし、他のCAに対して署名付き証明書をリクエストしていて、このCAの公開鍵を認証する証明書が、\fBcacerts\fRにまだ追加されていない場合は、該当するCAからの証明書を、「信頼できる証明書」としてインポートする必要があります。 \fBcacerts\fRキーストア・ファイルは、いくつかのVeriSignルートCA証明書を含んだ状態で出荷されているので、VeriSignの証明書を、信頼できる証明書としてキーストア内にインポートする必要がない場合があります。ただし、他のCAに対して署名付き証明書をリクエストしていて、このCAの公開鍵を認証する証明書が、\fBcacerts\fRにまだ追加されていない場合は、該当するCAからの証明書を、「信頼できる証明書」としてインポートする必要があります。
.PP .PP
通常、CAからの証明書は、自己署名証明書、または他のCAによって署名された証明書です(後者の場合は、該当する他のCAの公開鍵を認証する証明書が必要)。ABC, Inc\&.,がCAで、ABCから自己署名証明書であるA\fBBCCA\&.cer\fRという名前のファイルを取得したとします(この証明書はCAの公開鍵を認証します)。信頼できる証明書として証明書をインポートするときは、証明書が有効であることを確認する必要があります。まず、\fBkeytool \-printcert\fRコマンドまたは\fB\-noprompt\fRオプションなしの\fBkeytool \-importcert\fRコマンドでそれを表示し、表示された証明書のフィンガープリントが期待されるものと一致するかどうかを確認します。証明書を送信した人物に連絡し、この人物が提示した(またはセキュアな公開鍵のリポジトリによって提示される)フィンガープリントと、上のコマンドで表示されたフィンガープリントとを比較します。フィンガープリントが一致すれば、送信途中で他の何者か(攻撃者など)による証明書のすり替えが行われていないことを確認できます。送信途中でこの種の攻撃が行われていた場合、チェックを行わずに証明書をインポートすると、攻撃者によって署名されたすべてのものを信頼することになります。 通常、CAからの証明書は、自己署名証明書、または他のCAによって署名された証明書です(後者の場合は、該当する他のCAの公開鍵を認証する証明書が必要)。ABC, Inc\&.,がCAで、ABCから自己署名証明書であるA\fBBCCA\&.cer\fRという名前のファイルを取得したとします(この証明書はCAの公開鍵を認証します)。信頼できる証明書として証明書をインポートするときは、証明書が有効であることを確認する必要があります。まず、証明書の内容を表示し、\fBkeytool \-printcert\fRコマンドを使用するか、または\fB\-noprompt\fRオプションを指定しないで\fBkeytool \-importcert\fRコマンドを使用し、表示された証明書のフィンガープリントが、期待されるフィンガープリントと一致するかどうかを確認します。証明書を送信した人物に連絡し、この人物が提示した(または安全な公開鍵のリポジトリによって提示される)フィンガープリントと、上のコマンドで表示されたフィンガープリントとを比較します。フィンガープリントが一致すれば、送信途中で他の何者か(攻撃者など)による証明書のすり替えが行われていないことを確認できます。送信途中でこの種の攻撃が行われていた場合、チェックを行わずに証明書をインポートすると、攻撃者によって署名されたすべてのものを信頼することになります。
.PP .PP
証明書が有効であると信頼する場合は、次のコマンドでキーストアに追加できます。 証明書が有効であると信頼する場合は、次のコマンドでキーストアに追加できます。
.sp .sp
...@@ -1182,7 +1818,7 @@ ABCCA\&.cer ...@@ -1182,7 +1818,7 @@ ABCCA\&.cer
.if n \{\ .if n \{\
.RE .RE
.\} .\}
パスワードが、\fBdukekeypasswd\fRから\fBnewpass\fRに変更されます。テストを目的とする場合、または安全であることがわかっているシステムで実行する場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。必要なパスワードのオプションをコマンド行で指定しなかった場合は、パスワードの入力を求められます。 パスワードが、\fBdukekeypasswd\fRから\fBnewpass\fRに変更されます。テスト目的の場合、またはセキュアなシステムを使用している場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。必要なパスワードのオプションをコマンド行で指定しなかった場合は、パスワードの入力を求められます。
.RE .RE
.PP .PP
キーストアの実装 キーストアの実装
...@@ -1260,9 +1896,9 @@ Java ...@@ -1260,9 +1896,9 @@ Java
.sp .sp
\fBエンティティ\fR: エンティティは、人、組織、プログラム、コンピュータ、企業、銀行など、一定の度合いで信頼の対象となる様々なものを指します。 \fBエンティティ\fR: エンティティは、人、組織、プログラム、コンピュータ、企業、銀行など、一定の度合いで信頼の対象となる様々なものを指します。
.sp .sp
公開鍵暗号化では、ユーザーの公開鍵にアクセスする必要があります。大規模なネットワーク環境では、互いに通信しているエンティティ間で以前の関係が引続き確立されていると仮定したり、使用されているすべての公開鍵を収めた信頼できるリポジトリが存在すると仮定したりすることは不可能です。このような公開鍵の配布に関する問題を解決するために証明書が考案されました。現在では、証明書発行局(CA)が信頼できる第三者として機能します。CAは、他のエンティティの証明書に署名する(発行する)行為を、信頼して任されているエンティティ(企業など)です。CAは法律上の契約に拘束されるので、有効かつ信頼できる証明書のみを作成するものとして扱われます。VeriSign、Thawte、Entrustをはじめ、多くの公的な証明書発行局が存在します。 公開鍵暗号化では、ユーザーの公開鍵にアクセスする必要があります。大規模なネットワーク環境では、互いに通信しているエンティティ間で以前の関係が引続き確立されていると仮定したり、使用されているすべての公開鍵を収めた信頼できるリポジトリが存在すると仮定したりすることは不可能です。このような公開鍵の配布に関する問題を解決するために証明書が考案されました。現在では、認証局(CA)が信頼できる第三者として機能します。CAは、他のエンティティの証明書に署名する(発行する)行為を、信頼して任されているエンティティ(企業など)です。CAは法律上の契約に拘束されるので、有効かつ信頼できる証明書のみを作成するものとして扱われます。VeriSign、Thawte、Entrustをはじめ、多くの公的な認証局が存在します。
.sp .sp
Microsoftの認証サーバー、EntrustのCA製品などを所属組織内で利用すれば、独自の証明書発行局を運営することも可能です。\fBkeytool\fRコマンドを使用すると、証明書の表示、インポートおよびエクスポートを行うことができます。また、自己署名証明書を生成することもできます。 Microsoftの認証サーバー、EntrustのCA製品などを所属組織内で利用すれば、独自の認証局を運営することも可能です。\fBkeytool\fRコマンドを使用すると、証明書の表示、インポートおよびエクスポートを行うことができます。また、自己署名証明書を生成することもできます。
.sp .sp
現在、\fBkeytool\fRコマンドはX\&.509証明書を対象にしています。 現在、\fBkeytool\fRコマンドはX\&.509証明書を対象にしています。
.RE .RE
...@@ -1312,7 +1948,7 @@ X\&.509 Version 3 ...@@ -1312,7 +1948,7 @@ X\&.509 Version 3
.sp .sp
鍵を初めて作成すると、自己署名証明書という1つの要素のみを含むチェーンが開始されます。コマンドの\fB\-genkeypair\fRを参照してください。自己署名証明書は発行者(署名者)が主体と同じです。主体は、その公開鍵が証明書によって認証されるエンティティです。\fB\-genkeypair\fRコマンドを呼び出して新しい公開鍵と秘密鍵のペアを作成すると、公開鍵は常に自己署名証明書でラップされます。 鍵を初めて作成すると、自己署名証明書という1つの要素のみを含むチェーンが開始されます。コマンドの\fB\-genkeypair\fRを参照してください。自己署名証明書は発行者(署名者)が主体と同じです。主体は、その公開鍵が証明書によって認証されるエンティティです。\fB\-genkeypair\fRコマンドを呼び出して新しい公開鍵と秘密鍵のペアを作成すると、公開鍵は常に自己署名証明書でラップされます。
.sp .sp
この後、証明書署名リクエスト(CSR)が\fB\-certreq\fRコマンドで生成されて、CSRが証明書発行局(CA)に送信されると、CAからのレスポンスが\fB\-importcert\fRでインポートされ、元の自己署名証明書は証明書チェーンによって置き換えられます。\fBの\fR\-certreq\fBおよび\fR\-importcertコマンドオプションを参照してください。チェーンの最後にあるのは、Subjectの公開鍵を認証したCAが発行した証明書(応答)です。チェーン内のその前の証明書は、CAの公開鍵を認証する証明書です。 この後、証明書署名リクエスト(CSR)が\fB\-certreq\fRコマンドで生成されて、CSRが認証局(CA)に送信されると、CAからのレスポンスが\fB\-importcert\fRでインポートされ、元の自己署名証明書は証明書チェーンによって置き換えられます。\fBの\fR\-certreq\fBおよび\fR\-importcertコマンドオプションを参照してください。チェーンの最後にあるのは、Subjectの公開鍵を認証したCAが発行した証明書(応答)です。チェーン内のその前の証明書は、CAの公開鍵を認証する証明書です。
.sp .sp
CAの公開鍵を認証する証明書は、多くの場合、自己署名証明書(つまりCAが自身の公開鍵を認証した証明書)であり、これはチェーンの最初の証明書になります。場合によっては、CAが証明書のチェーンを返すこともあります。この場合、チェーン内の最後の証明書(CAによって署名され、鍵エントリの公開鍵を認証する証明書)に変わりはありませんが、チェーン内のその前の証明書は、CSRの送信先のCAとは別のCAによって署名され、CSRの送信先のCAの公開鍵を認証する証明書になります。チェーン内のその前の証明書は、次のCAの鍵を認証する証明書になります。以下同様に、自己署名された「ルート」証明書に達するまでチェーンが続きます。したがって、チェーン内の(最初の証明書以後の)各証明書では、チェーン内の次の証明書の署名者の公開鍵が認証されていることになります。 CAの公開鍵を認証する証明書は、多くの場合、自己署名証明書(つまりCAが自身の公開鍵を認証した証明書)であり、これはチェーンの最初の証明書になります。場合によっては、CAが証明書のチェーンを返すこともあります。この場合、チェーン内の最後の証明書(CAによって署名され、鍵エントリの公開鍵を認証する証明書)に変わりはありませんが、チェーン内のその前の証明書は、CSRの送信先のCAとは別のCAによって署名され、CSRの送信先のCAの公開鍵を認証する証明書になります。チェーン内のその前の証明書は、次のCAの鍵を認証する証明書になります。以下同様に、自己署名された「ルート」証明書に達するまでチェーンが続きます。したがって、チェーン内の(最初の証明書以後の)各証明書では、チェーン内の次の証明書の署名者の公開鍵が認証されていることになります。
.sp .sp
...@@ -1399,7 +2035,7 @@ X\&.500 ...@@ -1399,7 +2035,7 @@ X\&.500
.if n \{\ .if n \{\
.RE .RE
.\} .\}
イタリックの項目は、実際に指定する値を表します。短縮形のキーワードの意味は、次のとおりです。 イタリックの項目は、実際に指定する値を表します。短縮形のキーワードの意味は、次のとおりです。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
...@@ -1527,7 +2163,7 @@ Oracle Solaris ...@@ -1527,7 +2163,7 @@ Oracle Solaris
証明書をインポートする前に\fB\-printcert\fRコマンドを実行する必要はありません。キーストア内の信頼できる証明書のリストに証明書を追加する前に、\fB\-importcert\fRコマンドによって証明書の情報が表示され、確認を求めるメッセージが表示されるためです。ユーザーはインポート操作を停止できます。ただし、これを実行できるのは、\fB\-noprompt\fRオプションを指定せずに\fB\-importcert\fRコマンドを呼び出す場合のみです。\fB\-noprompt\fRオプションが指定されている場合、ユーザーとの対話は行われません。 証明書をインポートする前に\fB\-printcert\fRコマンドを実行する必要はありません。キーストア内の信頼できる証明書のリストに証明書を追加する前に、\fB\-importcert\fRコマンドによって証明書の情報が表示され、確認を求めるメッセージが表示されるためです。ユーザーはインポート操作を停止できます。ただし、これを実行できるのは、\fB\-noprompt\fRオプションを指定せずに\fB\-importcert\fRコマンドを呼び出す場合のみです。\fB\-noprompt\fRオプションが指定されている場合、ユーザーとの対話は行われません。
.SS "パスワード警告" .SS "パスワード警告"
.PP .PP
キーストアに対する操作を行うほとんどのコマンドでは、ストアのパスワードが必要です。また、一部のコマンドでは、非公開/秘密鍵のパスワードが必要になることがあります。パスワードはコマンド行で指定できます(\fB\-storepass\fRオプションと\fB\-keypass\fRオプションを使用)。ただし、テストを目的とする場合、または安全であることがわかっているシステムで実行する場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。必要なパスワードのオプションをコマンド行で指定しなかった場合は、パスワードの入力を求められます。 キーストアに対する操作を行うほとんどのコマンドでは、ストアのパスワードが必要です。また、一部のコマンドでは、非公開/秘密鍵のパスワードが必要になることがあります。パスワードはコマンド行で指定できます(\fB\-storepass\fRオプションと\fB\-keypass\fRオプションを使用)。ただし、テスト目的の場合、またはセキュアなシステムを使用している場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。必要なパスワードのオプションをコマンド行で指定しなかった場合は、パスワードの入力を求められます。
.SS "証明書の準拠に関する警告" .SS "証明書の準拠に関する警告"
.PP .PP
インターネット標準RFC 5280では、X\&.509証明書の準拠に関するプロファイルが定義されており、証明書のフィールドおよびエクステンションに有効な値および値の組合せが記載されています。標準については、 インターネット標準RFC 5280では、X\&.509証明書の準拠に関するプロファイルが定義されており、証明書のフィールドおよびエクステンションに有効な値および値の組合せが記載されています。標準については、
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: 国際化ツール .\" SectDesc: 国際化ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "native2ascii" "1" "2013年11月21日" "JDK 8" "国際化ツール" .TH "native2ascii" "1" "2013年11月21日" "JDK 8" "国際化ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Java IDLおよびRMI-IIOPツール .\" SectDesc: Java IDLおよびRMI-IIOPツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "orbd" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール" .TH "orbd" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール"
...@@ -117,7 +118,7 @@ ORBD ...@@ -117,7 +118,7 @@ ORBD
.PP .PP
\-serverPollingTime \fImilliseconds\fR \-serverPollingTime \fImilliseconds\fR
.RS 4 .RS 4
\fBservertool\fRを使用して登録された永続サーバーのヘルス状態をORBDがチェックする間隔を指定します。デフォルト値は1000ミリ秒です。\fBmilliseconds\fRに指定する値は、有効な正の整数にする必要があります。 \fBservertool\fRを使用して登録された永続サーバーが正常に動作していることをORBDが確認する間隔を指定します。デフォルト値は1000ミリ秒です。\fBmilliseconds\fRに指定する値は、有効な正の整数にする必要があります。
.RE .RE
.PP .PP
\-serverStartupDelay milliseconds \-serverStartupDelay milliseconds
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Javaデプロイメント・ツール .\" SectDesc: Javaデプロイメント・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "pack200" "1" "2013年11月21日" "JDK 8" "Javaデプロイメント・ツール" .TH "pack200" "1" "2013年11月21日" "JDK 8" "Javaデプロイメント・ツール"
...@@ -160,7 +161,7 @@ JAR ...@@ -160,7 +161,7 @@ JAR
\-\-segment\-limit=\fIvalue\fR \-\-segment\-limit=\fIvalue\fR
.RS 4 .RS 4
この値は、各アーカイブ・セグメントの予想ターゲット・サイズ\fIN\fR この値は、各アーカイブ・セグメントの予想ターゲット・サイズ\fIN\fR
(バイト単位)です。単一の入力ファイルの必要サイズが\fIN\fRバイトを超えると、独立したセグメントが割り当てられます。特殊なケースとして、値が\fB\-1\fRの場合は、すべての入力ファイルを含む大きな単一のセグメントが生成され、値が0の場合は、クラスごとにセグメントが1つずつ生成されます。アーカイブ・セグメントが大きくなると、断片化が少なくなり圧縮率が高くなりますが、その処理には多くのメモリーが必要です。 (バイト単位)です。単一の入力ファイルの必要サイズが\fIN\fRバイトを超えると、固有のアーカイブ・セグメントが提供されます。特殊なケースとして、値が\fB\-1\fRの場合は、すべての入力ファイルを含む大きな単一のセグメントが生成され、値が0の場合は、クラスごとにセグメントが1つずつ生成されます。アーカイブ・セグメントが大きくなると、断片化が少なくなり圧縮率が高くなりますが、その処理には多くのメモリーが必要です。
.sp .sp
各セグメントのサイズは、セグメントに変換されるそれぞれの入力ファイルのサイズのほか、その名前と他の送信されるプロパティのサイズを計算して推測されます。 各セグメントのサイズは、セグメントに変換されるそれぞれの入力ファイルのサイズのほか、その名前と他の送信されるプロパティのサイズを計算して推測されます。
.sp .sp
......
...@@ -23,14 +23,15 @@ ...@@ -23,14 +23,15 @@
.\" .\"
.\" Title: policytool .\" Title: policytool
.\" Language: Japanese .\" Language: Japanese
.\" Date: 2013年11月21 .\" Date: 2015年3月3
.\" SectDesc: セキュリティ・ツール .\" SectDesc: セキュリティ・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "policytool" "1" "2013年11月21日" "JDK 8" "セキュリティ・ツール" .TH "policytool" "1" "2015年3月3日" "JDK 8" "セキュリティ・ツール"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
...@@ -95,7 +96,7 @@ policytool \- ...@@ -95,7 +96,7 @@ policytool \-
.RS 4 .RS 4
.\} .\}
.nf .nf
\fBpolicytool\-file mypolicyfile\fR \fBpolicytool \-file \fR\fB\fImypolicyfile\fR\fR
.fi .fi
.if n \{\ .if n \{\
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Remote Method Invocation (RMI)ツール .\" SectDesc: Remote Method Invocation (RMI)ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "rmic" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)" .TH "rmic" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)"
...@@ -110,8 +111,8 @@ Java Remote Method Protocol (JRMP) ...@@ -110,8 +111,8 @@ Java Remote Method Protocol (JRMP)
.PP .PP
\-classpath path \-classpath path
.RS 4 .RS 4
\fBrmic\fRコマンドがクラスを探すためのパスを指定します。このオプションは、デフォルトや\fBCLASSPATH\fR環境変数設定をオーバーライドします。ディレクトリはコロンで分割します。パスの一般的な形式は\fB\&.;<your_path>\fRです。例: \fBrmic\fRコマンドがクラスを探すためのパスを指定します。このオプションは、デフォルトや\fBCLASSPATH\fR環境変数設定をオーバーライドします。ディレクトリはコロンで分割します。パスの一般的な形式は\fB\&.:<your_path>\fRです。例:
\fB\&.;/usr/local/java/classes\fR \fB\&.:/usr/local/java/classes\fR
.RE .RE
.PP .PP
\-d \fIdirectory\fR \-d \fIdirectory\fR
...@@ -350,7 +351,7 @@ java(1) ...@@ -350,7 +351,7 @@ java(1)
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
Setting the Class Path クラス・パスの設定
.RE .RE
.br .br
'pl 8.5i 'pl 8.5i
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Remote Method Invocation (RMI)ツール .\" SectDesc: Remote Method Invocation (RMI)ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "rmid" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)" .TH "rmid" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)"
...@@ -103,9 +104,7 @@ rmid \- ...@@ -103,9 +104,7 @@ rmid \-
.\} .\}
.SH "必要に応じてRMIDを開始" .SH "必要に応じてRMIDを開始"
.PP .PP
\fBrmid\fRをコマンド行から開始するには、\fBinetd\fR \fBrmid\fRをコマンド行から開始するには、\fBinetd\fR(Oracle Solarisの場合)、または\fBxinetd\fR(Linuxの場合)を構成して\fBrmid\fRを必要に応じて開始する方法もあります。
(Oracle Solarisの場合)、または\fBxinetd\fR
(Linuxの場合)を構成して\fBrmid\fRを必要に応じて開始する方法もあります。
.PP .PP
RMIDを開始すると、\fBSystem\&.inheritedChannel\fRメソッドを呼び出して、継承されたチャンネル(\fBinetd\fR/\fBxinetd\fRから継承)を取得しようとします。継承されたチャンネルがnullであるか、\fBjava\&.nio\&.channels\&.ServerSocketChannel\fRのインスタンスでなかった場合、RMIDはそのチャンネルは\fBinetd\fR/\fBxinetd\fRによって起動されたものではないと判断し、前述のように起動します。 RMIDを開始すると、\fBSystem\&.inheritedChannel\fRメソッドを呼び出して、継承されたチャンネル(\fBinetd\fR/\fBxinetd\fRから継承)を取得しようとします。継承されたチャンネルがnullであるか、\fBjava\&.nio\&.channels\&.ServerSocketChannel\fRのインスタンスでなかった場合、RMIDはそのチャンネルは\fBinetd\fR/\fBxinetd\fRによって起動されたものではないと判断し、前述のように起動します。
.PP .PP
...@@ -368,7 +367,7 @@ java(1) ...@@ -368,7 +367,7 @@ java(1)
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
Setting the Class Path クラス・パスの設定
.RE .RE
.br .br
'pl 8.5i 'pl 8.5i
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Remote Method Invocation (RMI)ツール .\" SectDesc: Remote Method Invocation (RMI)ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "rmiregistry" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)" .TH "rmiregistry" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Java Webサービス・ツール .\" SectDesc: Java Webサービス・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "schemagen" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール" .TH "schemagen" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Remote Method Invocation (RMI)ツール .\" SectDesc: Remote Method Invocation (RMI)ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "serialver" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)" .TH "serialver" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Java IDLおよびRMI-IIOPツール .\" SectDesc: Java IDLおよびRMI-IIOPツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "servertool" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール" .TH "servertool" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Java IDLおよびRMI-IIOPツール .\" SectDesc: Java IDLおよびRMI-IIOPツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "tnameserv" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール" .TH "tnameserv" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール"
...@@ -189,7 +190,7 @@ Java Virtual Machine ...@@ -189,7 +190,7 @@ Java Virtual Machine
.SH "例" .SH "例"
.SS "ネームスペースへのオブジェクトの追加" .SS "ネームスペースへのオブジェクトの追加"
.PP .PP
次の例では、ネームスペースに名前を追加する方法を示します。このサンプル・プログラムは、このままの状態で完全に動作する一時ネーム・サービス・クライアントで、次のような単純なツリーを作成するものです。 次の例では、ネームスペースに名前を追加する方法を示します。このサンプル・プログラムは、自己完結型の一時ネーム・サービス・クライアントで、次のような単純なツリーを作成するものです。
.sp .sp
.if n \{\ .if n \{\
.RS 4 .RS 4
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Javaデプロイメント・ツール .\" SectDesc: Javaデプロイメント・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "unpack200" "1" "2013年11月21日" "JDK 8" "Javaデプロイメント・ツール" .TH "unpack200" "1" "2013年11月21日" "JDK 8" "Javaデプロイメント・ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Java Webサービス・ツール .\" SectDesc: Java Webサービス・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "wsgen" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール" .TH "wsgen" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Java Webサービス・ツール .\" SectDesc: Java Webサービス・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "wsimport" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール" .TH "wsimport" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール"
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
.\" SectDesc: Java Webサービス・ツール .\" SectDesc: Java Webサービス・ツール
.\" Software: JDK 8 .\" Software: JDK 8
.\" Arch: 汎用 .\" Arch: 汎用
.\" Part Number: E54734-01 .\" Part Number: E58103-01
.\" Doc ID: JSSON
.\" .\"
.if n .pl 99999 .if n .pl 99999
.TH "xjc" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール" .TH "xjc" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール"
...@@ -129,7 +130,7 @@ Using the XJC with Ant ...@@ -129,7 +130,7 @@ Using the XJC with Ant
.PP .PP
\-p \fIpkg\fR \-p \fIpkg\fR
.RS 4 .RS 4
このコマンド行オプションでターゲット・パッケージを指定した場合、パッケージ名に対するすべてのバインディング・カスタマイズや、仕様で規定されているデフォルトのパッケージ名アルゴリズムよりも優先されます。 このコマンド行オプションでターゲット・パッケージを指定した場合、その指定内容は、パッケージ名に対するすべてのバインディング・カスタマイズや、仕様で規定されているデフォルトのパッケージ名アルゴリズムよりも優先されます。
.RE .RE
.PP .PP
\-httpproxy \fIproxy\fR \-httpproxy \fIproxy\fR
......
...@@ -28,167 +28,440 @@ ...@@ -28,167 +28,440 @@
* @summary Timeout tests for ldap * @summary Timeout tests for ldap
*/ */
import com.sun.jndi.ldap.Connection;
import java.net.Socket; import java.net.Socket;
import java.net.ServerSocket; import java.net.ServerSocket;
import java.net.SocketTimeoutException; import java.net.SocketTimeoutException;
import java.io.*; import java.io.*;
import javax.naming.*; import javax.naming.*;
import javax.naming.directory.*; import javax.naming.directory.*;
import java.util.List;
import java.util.Hashtable; import java.util.Hashtable;
import java.util.ArrayList;
import java.util.concurrent.Callable; import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeoutException;
import java.util.concurrent.TimeUnit;
import static java.util.concurrent.TimeUnit.MILLISECONDS; import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.NANOSECONDS; import static java.util.concurrent.TimeUnit.NANOSECONDS;
public class LdapTimeoutTest {
static volatile int passed = 0, failed = 0; abstract class LdapTest implements Callable {
static void pass() {passed++;}
static void fail() {failed++; Thread.dumpStack();}
public static void main(String[] args) throws Exception { Hashtable env;
ServerSocket serverSock = new ServerSocket(0); TestServer server;
Server s = new Server(serverSock); ScheduledExecutorService killSwitchPool;
s.start(); boolean passed = false;
Thread.sleep(200); private int HANGING_TEST_TIMEOUT = 20_000;
Hashtable env = new Hashtable(11); public LdapTest (TestServer server, Hashtable env) {
env.put(Context.INITIAL_CONTEXT_FACTORY, this.server = server;
"com.sun.jndi.ldap.LdapCtxFactory"); this.env = env;
env.put(Context.PROVIDER_URL, "ldap://localhost:" + }
serverSock.getLocalPort());
env.put(Context.SECURITY_AUTHENTICATION,"simple"); public LdapTest(TestServer server, Hashtable env,
ScheduledExecutorService killSwitchPool)
{
this(server, env);
this.killSwitchPool = killSwitchPool;
}
env.put(Context.SECURITY_PRINCIPAL, "user"); public abstract void performOp(InitialContext ctx) throws NamingException;
env.put(Context.SECURITY_CREDENTIALS, "password"); public abstract void handleNamingException(
NamingException e, long start, long end);
InitialContext ctx = null; public void pass() {
try { this.passed = true;
new LdapTimeoutTest().deadServerNoTimeout(env); }
env.put("com.sun.jndi.ldap.connect.timeout", "10"); public void fail() {
env.put("com.sun.jndi.ldap.read.timeout", "3000"); throw new RuntimeException("Test failed");
new LdapTimeoutTest().ldapReadTimeoutTest(env, false);
new LdapTimeoutTest().ldapReadTimeoutTest(env, true);
new LdapTimeoutTest().simpleAuthConnectTest(env);
} finally {
s.interrupt();
} }
System.out.printf("%nPassed = %d, failed = %d%n%n", passed, failed); boolean shutItDown(InitialContext ctx) {
if (failed > 0) throw new AssertionError("Some tests failed"); try {
if (ctx != null) ctx.close();
return true;
} catch (NamingException ex) {
return false;
}
} }
void ldapReadTimeoutTest(Hashtable env, boolean ssl) { public Boolean call() {
InitialContext ctx = null; InitialContext ctx = null;
if (ssl) env.put(Context.SECURITY_PROTOCOL, "ssl"); ScheduledFuture killer = null;
long start = System.nanoTime(); long start = System.nanoTime();
try {
while(!server.accepting())
Thread.sleep(200); // allow the server to start up
Thread.sleep(200); // to be sure
// if this is a hanging test, scheduled a thread to
// interrupt after a certain time
if (killSwitchPool != null) {
final Thread current = Thread.currentThread();
killer = killSwitchPool.schedule(
new Callable<Void>() {
public Void call() throws Exception {
current.interrupt();
return null;
}
}, HANGING_TEST_TIMEOUT, MILLISECONDS);
}
env.put(Context.PROVIDER_URL, "ldap://localhost:" +
server.getLocalPort());
try { try {
ctx = new InitialDirContext(env); ctx = new InitialDirContext(env);
performOp(ctx);
fail();
} catch (NamingException e) {
long end = System.nanoTime();
System.out.println(this.getClass().toString() + " - elapsed: "
+ NANOSECONDS.toMillis(end - start));
handleNamingException(e, start, end);
} finally {
if (killer != null && !killer.isDone())
killer.cancel(true);
shutItDown(ctx);
server.close();
}
return passed;
} catch (IOException|InterruptedException e) {
throw new RuntimeException(e);
}
}
}
abstract class ReadServerTest extends LdapTest {
public ReadServerTest(Hashtable env) throws IOException {
super(new BindableServer(), env);
}
public ReadServerTest(Hashtable env,
ScheduledExecutorService killSwitchPool)
throws IOException
{
super(new BindableServer(), env, killSwitchPool);
}
public void performOp(InitialContext ctx) throws NamingException {
SearchControls scl = new SearchControls(); SearchControls scl = new SearchControls();
scl.setSearchScope(SearchControls.SUBTREE_SCOPE); scl.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration<SearchResult> answer = ((InitialDirContext)ctx) NamingEnumeration<SearchResult> answer = ((InitialDirContext)ctx)
.search("ou=People,o=JNDITutorial", "(objectClass=*)", scl); .search("ou=People,o=JNDITutorial", "(objectClass=*)", scl);
// shouldn't reach here
fail();
} catch (NamingException e) {
if (ssl) {
if (e.getCause() instanceof SocketTimeoutException) {
pass();
} else if (e.getCause() instanceof InterruptedIOException) {
Thread.interrupted();
fail();
} }
}
abstract class DeadServerTest extends LdapTest {
public DeadServerTest(Hashtable env) throws IOException {
super(new DeadServer(), env);
}
public DeadServerTest(Hashtable env,
ScheduledExecutorService killSwitchPool)
throws IOException
{
super(new DeadServer(), env, killSwitchPool);
}
public void performOp(InitialContext ctx) throws NamingException {}
}
class DeadServerNoTimeoutTest extends DeadServerTest {
public DeadServerNoTimeoutTest(Hashtable env,
ScheduledExecutorService killSwitchPool)
throws IOException
{
super(env, killSwitchPool);
}
public void handleNamingException(NamingException e, long start, long end) {
if (e instanceof InterruptedNamingException) Thread.interrupted();
if (NANOSECONDS.toMillis(end - start) < LdapTimeoutTest.MIN_TIMEOUT) {
System.err.printf("DeadServerNoTimeoutTest fail: timeout should be " +
"at least %s ms, actual time is %s ms%n",
LdapTimeoutTest.MIN_TIMEOUT,
NANOSECONDS.toMillis(end - start));
fail();
} else { } else {
pass(); pass();
} }
} finally {
if (!shutItDown(ctx)) fail();
} }
}
class DeadServerTimeoutTest extends DeadServerTest {
public DeadServerTimeoutTest(Hashtable env) throws IOException {
super(env);
} }
void simpleAuthConnectTest(Hashtable env) { public void handleNamingException(NamingException e, long start, long end)
InitialContext ctx = null; {
long start = System.nanoTime(); // non SSL connect will timeout via readReply using connectTimeout
try {
ctx = new InitialDirContext(env);
// shouldn't reach here
System.err.println("Fail: InitialDirContext succeeded");
fail();
} catch (NamingException e) {
long end = System.nanoTime();
if (e.getCause() instanceof SocketTimeoutException) {
if (NANOSECONDS.toMillis(end - start) < 2_900) { if (NANOSECONDS.toMillis(end - start) < 2_900) {
pass(); pass();
} else { } else {
System.err.println("Fail: Waited too long"); System.err.println("Fail: Waited too long");
fail(); fail();
} }
} else if (e.getCause() instanceof InterruptedIOException) { }
Thread.interrupted(); }
fail();
class DeadServerTimeoutSSLTest extends DeadServerTest {
public DeadServerTimeoutSSLTest(Hashtable env) throws IOException {
super(env);
}
public void handleNamingException(NamingException e, long start, long end) {
if (e.getCause() instanceof SocketTimeoutException) {
// SSL connect will timeout via readReply using
// SocketTimeoutException
pass();
} else { } else {
fail(); fail();
} }
} finally {
if (!shutItDown(ctx)) fail();
} }
}
class ReadServerNoTimeoutTest extends ReadServerTest {
public ReadServerNoTimeoutTest(Hashtable env,
ScheduledExecutorService killSwitchPool)
throws IOException
{
super(env, killSwitchPool);
} }
void deadServerNoTimeout(Hashtable env) { public void handleNamingException(NamingException e, long start, long end) {
InitialContext ctx = null; if (e instanceof InterruptedNamingException) Thread.interrupted();
long start = System.currentTimeMillis();
try { if (NANOSECONDS.toMillis(end - start) < LdapTimeoutTest.MIN_TIMEOUT) {
ctx = new InitialDirContext(env); System.err.printf("ReadServerNoTimeoutTest fail: timeout should be " +
SearchControls scl = new SearchControls(); "at least %s ms, actual time is %s ms%n",
scl.setSearchScope(SearchControls.SUBTREE_SCOPE); LdapTimeoutTest.MIN_TIMEOUT,
NamingEnumeration<SearchResult> answer = ((InitialDirContext)ctx) NANOSECONDS.toMillis(end - start));
.search("ou=People,o=JNDITutorial", "(objectClass=*)", scl);
// shouldn't reach here
fail(); fail();
} catch (NamingException e) { } else {
long elapsed = System.currentTimeMillis() - start; pass();
if (elapsed < Connection.DEFAULT_READ_TIMEOUT_MILLIS) { }
System.err.printf("fail: timeout should be at least %s ms, " + }
"actual time is %s ms%n", }
Connection.DEFAULT_READ_TIMEOUT_MILLIS, elapsed);
e.printStackTrace(); class ReadServerTimeoutTest extends ReadServerTest {
public ReadServerTimeoutTest(Hashtable env) throws IOException {
super(env);
}
public void handleNamingException(NamingException e, long start, long end) {
if (NANOSECONDS.toMillis(end - start) < 2_900) {
fail(); fail();
} else { } else {
pass(); pass();
} }
} finally {
if (!shutItDown(ctx)) fail();
} }
}
class TestServer extends Thread {
ServerSocket serverSock;
boolean accepting = false;
public TestServer() throws IOException {
this.serverSock = new ServerSocket(0);
start();
} }
boolean shutItDown(InitialContext ctx) { public int getLocalPort() {
return serverSock.getLocalPort();
}
public boolean accepting() {
return accepting;
}
public void close() throws IOException {
serverSock.close();
}
}
class BindableServer extends TestServer {
public BindableServer() throws IOException {
super();
}
private byte[] bindResponse = {
0x30, 0x0C, 0x02, 0x01, 0x01, 0x61, 0x07, 0x0A,
0x01, 0x00, 0x04, 0x00, 0x04, 0x00
};
public void run() {
try { try {
if (ctx != null) ctx.close(); accepting = true;
return true; Socket socket = serverSock.accept();
} catch (NamingException ex) { InputStream in = socket.getInputStream();
return false; OutputStream out = socket.getOutputStream();
// Read the LDAP BindRequest
while (in.read() != -1) {
in.skip(in.available());
break;
}
// Write an LDAP BindResponse
out.write(bindResponse);
out.flush();
} catch (IOException e) {
// ignore
} }
} }
}
static class Server extends Thread { class DeadServer extends TestServer {
final ServerSocket serverSock;
Server(ServerSocket serverSock) { public DeadServer() throws IOException {
this.serverSock = serverSock; super();
} }
public void run() { public void run() {
while(true) {
try { try {
accepting = true;
Socket socket = serverSock.accept(); Socket socket = serverSock.accept();
} catch (IOException e) {} } catch (Exception e) {
break;
}
} }
} }
} }
public class LdapTimeoutTest {
private static final ExecutorService testPool =
Executors.newFixedThreadPool(3);
private static final ScheduledExecutorService killSwitchPool =
Executors.newScheduledThreadPool(3);
public static int MIN_TIMEOUT = 18_000;
static Hashtable createEnv() {
Hashtable env = new Hashtable(11);
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
return env;
}
public static void main(String[] args) throws Exception {
InitialContext ctx = null;
List<Future> results = new ArrayList<>();
try {
// run the DeadServerTest with no timeouts set
// this should get stuck indefinitely, so we need to kill
// it after a timeout
System.out.println("Running connect timeout test with 20s kill switch");
Hashtable env = createEnv();
results.add(
testPool.submit(new DeadServerNoTimeoutTest(env, killSwitchPool)));
// run the ReadServerTest with connect timeout set
// this should get stuck indefinitely so we need to kill
// it after a timeout
System.out.println("Running read timeout test with 10ms connect timeout & 20s kill switch");
Hashtable env1 = createEnv();
env1.put("com.sun.jndi.ldap.connect.timeout", "10");
results.add(testPool.submit(
new ReadServerNoTimeoutTest(env1, killSwitchPool)));
// run the ReadServerTest with no timeouts set
// this should get stuck indefinitely, so we need to kill
// it after a timeout
System.out.println("Running read timeout test with 20s kill switch");
Hashtable env2 = createEnv();
results.add(testPool.submit(
new ReadServerNoTimeoutTest(env2, killSwitchPool)));
// run the DeadServerTest with connect / read timeouts set
// this should exit after the connect timeout expires
System.out.println("Running connect timeout test with 10ms connect timeout, 3000ms read timeout");
Hashtable env3 = createEnv();
env3.put("com.sun.jndi.ldap.connect.timeout", "10");
env3.put("com.sun.jndi.ldap.read.timeout", "3000");
results.add(testPool.submit(new DeadServerTimeoutTest(env3)));
// run the ReadServerTest with connect / read timeouts set
// this should exit after the connect timeout expires
System.out.println("Running read timeout test with 10ms connect timeout, 3000ms read timeout");
Hashtable env4 = createEnv();
env4.put("com.sun.jndi.ldap.connect.timeout", "10");
env4.put("com.sun.jndi.ldap.read.timeout", "3000");
results.add(testPool.submit(new ReadServerTimeoutTest(env4)));
// run the DeadServerTest with connect timeout set
// this should exit after the connect timeout expires
System.out.println("Running connect timeout test with 10ms connect timeout");
Hashtable env5 = createEnv();
env5.put("com.sun.jndi.ldap.connect.timeout", "10");
results.add(testPool.submit(new DeadServerTimeoutTest(env5)));
// 8000487: Java JNDI connection library on ldap conn is
// not honoring configured timeout
System.out.println("Running simple auth connection test");
Hashtable env6 = createEnv();
env6.put("com.sun.jndi.ldap.connect.timeout", "10");
env6.put("com.sun.jndi.ldap.read.timeout", "3000");
env6.put(Context.SECURITY_AUTHENTICATION, "simple");
env6.put(Context.SECURITY_PRINCIPAL, "user");
env6.put(Context.SECURITY_CREDENTIALS, "password");
results.add(testPool.submit(new DeadServerTimeoutTest(env6)));
boolean testFailed = false;
for (Future test : results) {
while (!test.isDone()) {
if ((Boolean) test.get() == false)
testFailed = true;
}
}
//
// Running this test serially as it seems to tickle a problem
// on older kernels
//
// run the DeadServerTest with connect / read timeouts set
// and ssl enabled
// this should exit with a SocketTimeoutException as the root cause
// it should also use the connect timeout instead of the read timeout
System.out.println("Running connect timeout test with 10ms connect timeout, 3000ms read timeout & SSL");
Hashtable sslenv = createEnv();
sslenv.put("com.sun.jndi.ldap.connect.timeout", "10");
sslenv.put("com.sun.jndi.ldap.read.timeout", "3000");
sslenv.put(Context.SECURITY_PROTOCOL, "ssl");
testFailed = (new DeadServerTimeoutSSLTest(sslenv).call()) ? false : true;
if (testFailed) {
throw new AssertionError("some tests failed");
}
} finally {
LdapTimeoutTest.killSwitchPool.shutdown();
LdapTimeoutTest.testPool.shutdown();
}
}
}
/*
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsEnvironment;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.awt.image.DataBuffer;
import java.awt.image.DataBufferByte;
import java.awt.image.DataBufferInt;
import java.awt.image.DataBufferShort;
import java.awt.image.VolatileImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import static java.awt.Transparency.TRANSLUCENT;
import static java.awt.image.BufferedImage.TYPE_INT_ARGB;
/**
* @test
* @bug 8059942
* @summary Tests rotated clip when unmanaged image is drawn to VI.
* Results of the blit to compatibleImage are used for comparison.
* @author Sergey Bylokhov
*/
public final class IncorrectUnmanagedImageRotatedClip {
public static void main(final String[] args) throws IOException {
BufferedImage bi = makeUnmanagedBI();
fill(bi);
test(bi);
}
private static void test(final BufferedImage bi) throws IOException {
GraphicsEnvironment ge = GraphicsEnvironment
.getLocalGraphicsEnvironment();
GraphicsConfiguration gc = ge.getDefaultScreenDevice()
.getDefaultConfiguration();
VolatileImage vi = gc.createCompatibleVolatileImage(500, 200,
TRANSLUCENT);
BufferedImage gold = gc.createCompatibleImage(500, 200, TRANSLUCENT);
// draw to compatible Image
draw(bi, gold);
// draw to volatile image
int attempt = 0;
BufferedImage snapshot;
while (true) {
if (++attempt > 10) {
throw new RuntimeException("Too many attempts: " + attempt);
}
vi.validate(gc);
if (vi.validate(gc) != VolatileImage.IMAGE_OK) {
continue;
}
draw(bi, vi);
snapshot = vi.getSnapshot();
if (vi.contentsLost()) {
continue;
}
break;
}
// validate images
for (int x = 0; x < gold.getWidth(); ++x) {
for (int y = 0; y < gold.getHeight(); ++y) {
if (gold.getRGB(x, y) != snapshot.getRGB(x, y)) {
ImageIO.write(gold, "png", new File("gold.png"));
ImageIO.write(snapshot, "png", new File("bi.png"));
throw new RuntimeException("Test failed.");
}
}
}
}
private static void draw(final BufferedImage from,final Image to) {
final Graphics2D g2d = (Graphics2D) to.getGraphics();
g2d.setComposite(AlphaComposite.Src);
g2d.setColor(Color.ORANGE);
g2d.fillRect(0, 0, to.getWidth(null), to.getHeight(null));
g2d.rotate(Math.toRadians(45));
g2d.clip(new Rectangle(41, 42, 43, 44));
g2d.drawImage(from, 50, 50, Color.blue, null);
g2d.dispose();
}
private static BufferedImage makeUnmanagedBI() {
final BufferedImage bi = new BufferedImage(500, 200, TYPE_INT_ARGB);
final DataBuffer db = bi.getRaster().getDataBuffer();
if (db instanceof DataBufferInt) {
((DataBufferInt) db).getData();
} else if (db instanceof DataBufferShort) {
((DataBufferShort) db).getData();
} else if (db instanceof DataBufferByte) {
((DataBufferByte) db).getData();
} else {
try {
bi.setAccelerationPriority(0.0f);
} catch (final Throwable ignored) {
}
}
return bi;
}
private static void fill(final Image image) {
final Graphics2D graphics = (Graphics2D) image.getGraphics();
graphics.setComposite(AlphaComposite.Src);
for (int i = 0; i < image.getHeight(null); ++i) {
graphics.setColor(new Color(i, 0, 0));
graphics.fillRect(0, i, image.getWidth(null), 1);
}
graphics.dispose();
}
}
/*
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import static java.awt.image.ImageObserver.*;
import java.io.File;
import javax.imageio.ImageIO;
/*
* @test
* @bug 8065627
* @summary Animated GIFs fail to display on a HiDPI display
* @author Alexander Scherbatiy
* @run main MultiResolutionImageObserverTest
*/
public class MultiResolutionImageObserverTest {
private static final int TIMEOUT = 500;
public static void main(String[] args) throws Exception {
generateImages();
Toolkit toolkit = Toolkit.getDefaultToolkit();
Image image = Toolkit.getDefaultToolkit().getImage(IMAGE_NAME_1X);
LoadImageObserver sizeObserver
= new LoadImageObserver(WIDTH | HEIGHT);
toolkit.prepareImage(image, -1, -1, sizeObserver);
waitForImageLoading(sizeObserver, "The first observer is not called");
LoadImageObserver bitsObserver
= new LoadImageObserver(SOMEBITS | FRAMEBITS | ALLBITS);
BufferedImage buffImage = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = (Graphics2D) buffImage.createGraphics();
g2d.scale(2, 2);
g2d.drawImage(image, 0, 0, bitsObserver);
waitForImageLoading(bitsObserver, "The second observer is not called!");
g2d.dispose();
}
private static void waitForImageLoading(LoadImageObserver observer,
String errorMessage) throws Exception {
long endTime = System.currentTimeMillis() + TIMEOUT;
while (!observer.loaded && System.currentTimeMillis() < endTime) {
Thread.sleep(TIMEOUT / 10);
}
if (!observer.loaded) {
throw new RuntimeException(errorMessage);
}
}
private static final String IMAGE_NAME_1X = "image.png";
private static final String IMAGE_NAME_2X = "image@2x.png";
private static void generateImages() throws Exception {
generateImage(1);
generateImage(2);
}
private static void generateImage(int scale) throws Exception {
BufferedImage image = new BufferedImage(
scale * 200, scale * 300,
BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
g.setColor(scale == 1 ? Color.GREEN : Color.BLUE);
g.fillRect(0, 0, scale * 200, scale * 300);
File file = new File(scale == 1 ? IMAGE_NAME_1X : IMAGE_NAME_2X);
ImageIO.write(image, "png", file);
g.dispose();
}
private static class LoadImageObserver implements ImageObserver {
private final int infoflags;
private boolean loaded;
public LoadImageObserver(int flags) {
this.infoflags = flags;
}
@Override
public boolean imageUpdate(Image img, int flags, int x, int y, int width, int height) {
if ((flags & infoflags) != 0) {
loaded = true;
}
return !loaded;
}
}
}
/*
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import java.lang.reflect.Field;
import java.lang.reflect.ReflectPermission;
import java.security.CodeSource;
import java.security.Permission;
import java.security.PermissionCollection;
import java.security.Permissions;
import java.security.Policy;
import java.security.ProtectionDomain;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.concurrent.atomic.AtomicBoolean;
/**
* @test
* @bug 8065552
* @summary test that all fields returned by getDeclaredFields() can be
* set accessible if the right permission is granted; this test
* also verifies that Class.classLoader final private field is
* hidden from reflection access.
* @run main/othervm ClassDeclaredFieldsTest UNSECURE
* @run main/othervm ClassDeclaredFieldsTest SECURE
*
* @author danielfuchs
*/
public class ClassDeclaredFieldsTest {
// Test with or without a security manager
public static enum TestCase {
UNSECURE, SECURE;
public void run() throws Exception {
System.out.println("Running test case: " + name());
Configure.setUp(this);
test(this);
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
System.out.println(System.getProperty("java.version"));
if (args == null || args.length == 0) {
args = new String[] { "SECURE" };
} else if (args.length != 1) {
throw new IllegalArgumentException("Only one arg expected: "
+ Arrays.asList(args));
}
TestCase.valueOf(args[0]).run();
}
static void test(TestCase test) {
for (Field f : Class.class.getDeclaredFields()) {
f.setAccessible(true);
System.out.println("Field "+f.getName()+" is now accessible.");
if (f.getName().equals("classLoader")) {
throw new RuntimeException("Found "+f.getName()+" field!");
}
}
try {
Class.class.getDeclaredField("classLoader");
throw new RuntimeException("Expected NoSuchFieldException for"
+ " 'classLoader' field not raised");
} catch(NoSuchFieldException x) {
System.out.println("Got expected exception: " + x);
}
System.out.println("Passed "+test);
}
// A helper class to configure the security manager for the test,
// and bypass it when needed.
static class Configure {
static Policy policy = null;
static final ThreadLocal<AtomicBoolean> allowAll = new ThreadLocal<AtomicBoolean>() {
@Override
protected AtomicBoolean initialValue() {
return new AtomicBoolean(false);
}
};
static void setUp(TestCase test) {
switch (test) {
case SECURE:
if (policy == null && System.getSecurityManager() != null) {
throw new IllegalStateException("SecurityManager already set");
} else if (policy == null) {
policy = new SimplePolicy(TestCase.SECURE, allowAll);
Policy.setPolicy(policy);
System.setSecurityManager(new SecurityManager());
}
if (System.getSecurityManager() == null) {
throw new IllegalStateException("No SecurityManager.");
}
if (policy == null) {
throw new IllegalStateException("policy not configured");
}
break;
case UNSECURE:
if (System.getSecurityManager() != null) {
throw new IllegalStateException("SecurityManager already set");
}
break;
default:
throw new InternalError("No such testcase: " + test);
}
}
static void doPrivileged(Runnable run) {
allowAll.get().set(true);
try {
run.run();
} finally {
allowAll.get().set(false);
}
}
}
// A Helper class to build a set of permissions.
final static class PermissionsBuilder {
final Permissions perms;
public PermissionsBuilder() {
this(new Permissions());
}
public PermissionsBuilder(Permissions perms) {
this.perms = perms;
}
public PermissionsBuilder add(Permission p) {
perms.add(p);
return this;
}
public PermissionsBuilder addAll(PermissionCollection col) {
if (col != null) {
for (Enumeration<Permission> e = col.elements(); e.hasMoreElements(); ) {
perms.add(e.nextElement());
}
}
return this;
}
public Permissions toPermissions() {
final PermissionsBuilder builder = new PermissionsBuilder();
builder.addAll(perms);
return builder.perms;
}
}
// Policy for the test...
public static class SimplePolicy extends Policy {
final Permissions permissions;
final Permissions allPermissions;
final ThreadLocal<AtomicBoolean> allowAll; // actually: this should be in a thread locale
public SimplePolicy(TestCase test, ThreadLocal<AtomicBoolean> allowAll) {
this.allowAll = allowAll;
// we don't actually need any permission to create our
// FileHandlers because we're passing invalid parameters
// which will make the creation fail...
permissions = new Permissions();
permissions.add(new RuntimePermission("accessDeclaredMembers"));
permissions.add(new ReflectPermission("suppressAccessChecks"));
// these are used for configuring the test itself...
allPermissions = new Permissions();
allPermissions.add(new java.security.AllPermission());
}
@Override
public boolean implies(ProtectionDomain domain, Permission permission) {
if (allowAll.get().get()) return allPermissions.implies(permission);
return permissions.implies(permission);
}
@Override
public PermissionCollection getPermissions(CodeSource codesource) {
return new PermissionsBuilder().addAll(allowAll.get().get()
? allPermissions : permissions).toPermissions();
}
@Override
public PermissionCollection getPermissions(ProtectionDomain domain) {
return new PermissionsBuilder().addAll(allowAll.get().get()
? allPermissions : permissions).toPermissions();
}
}
}
...@@ -2246,9 +2246,10 @@ public class Basic { ...@@ -2246,9 +2246,10 @@ public class Basic {
fail("Test failed: Process exited prematurely"); fail("Test failed: Process exited prematurely");
} }
long end = System.nanoTime(); long end = System.nanoTime();
// give waitFor(timeout) a wide berth (200ms) // give waitFor(timeout) a wide berth (2s)
// Old AIX machines my need a little longer. System.out.printf(" waitFor process: delta: %d%n",(end - start) );
if ((end - start) > 200000000L * (AIX.is() ? 2 : 1))
if ((end - start) > TimeUnit.SECONDS.toNanos(2))
fail("Test failed: waitFor took too long (" + (end - start) + "ns)"); fail("Test failed: waitFor took too long (" + (end - start) + "ns)");
p.destroy(); p.destroy();
...@@ -2272,19 +2273,23 @@ public class Basic { ...@@ -2272,19 +2273,23 @@ public class Basic {
final Process p = new ProcessBuilder(childArgs).start(); final Process p = new ProcessBuilder(childArgs).start();
long start = System.nanoTime(); long start = System.nanoTime();
p.waitFor(1000, TimeUnit.MILLISECONDS); p.waitFor(10, TimeUnit.MILLISECONDS);
long end = System.nanoTime(); long end = System.nanoTime();
if ((end - start) < 500000000) if ((end - start) < TimeUnit.MILLISECONDS.toNanos(10))
fail("Test failed: waitFor didn't take long enough (" + (end - start) + "ns)"); fail("Test failed: waitFor didn't take long enough (" + (end - start) + "ns)");
p.destroy(); p.destroy();
start = System.nanoTime(); start = System.nanoTime();
p.waitFor(1000, TimeUnit.MILLISECONDS); p.waitFor(8, TimeUnit.SECONDS);
end = System.nanoTime(); end = System.nanoTime();
if ((end - start) > 900000000)
fail("Test failed: waitFor took too long on a dead process. (" + (end - start) + "ns)"); int exitValue = p.exitValue();
if ((end - start) > TimeUnit.SECONDS.toNanos(7))
fail("Test failed: waitFor took too long on a dead process. (" + (end - start) + "ns)"
+ ", exitValue: " + exitValue);
} catch (Throwable t) { unexpected(t); } } catch (Throwable t) { unexpected(t); }
//---------------------------------------------------------------- //----------------------------------------------------------------
......
...@@ -32,15 +32,30 @@ import sun.invoke.util.Wrapper; ...@@ -32,15 +32,30 @@ import sun.invoke.util.Wrapper;
*/ */
public class ExplicitCastArgumentsTest { public class ExplicitCastArgumentsTest {
private static final boolean VERBOSE = Boolean.getBoolean("verbose"); private static final boolean VERBOSE = Boolean.getBoolean("verbose");
private static final Class<?> THIS_CLASS = ExplicitCastArgumentsTest.class;
public static void main(String[] args) throws Throwable { public static void main(String[] args) throws Throwable {
testVarargsCollector();
testRef2Prim();
System.out.println("TEST PASSED");
}
public static String[] f(String... args) { return args; }
public static void testVarargsCollector() throws Throwable {
MethodType mt = MethodType.methodType(String[].class, String[].class);
MethodHandle mh = MethodHandles.publicLookup().findStatic(THIS_CLASS, "f", mt);
mh = MethodHandles.explicitCastArguments(mh, MethodType.methodType(Object.class, Object.class));
mh.invokeWithArguments((Object)(new String[] {"str1", "str2"}));
}
public static void testRef2Prim() throws Throwable {
for (Wrapper from : Wrapper.values()) { for (Wrapper from : Wrapper.values()) {
for (Wrapper to : Wrapper.values()) { for (Wrapper to : Wrapper.values()) {
if (from == Wrapper.VOID || to == Wrapper.VOID) continue; if (from == Wrapper.VOID || to == Wrapper.VOID) continue;
testRef2Prim (from, to); testRef2Prim(from, to);
} }
} }
System.out.println("TEST PASSED");
} }
public static void testRef2Prim(Wrapper from, Wrapper to) throws Throwable { public static void testRef2Prim(Wrapper from, Wrapper to) throws Throwable {
......
...@@ -63,12 +63,17 @@ public abstract class LFCachingTestCase extends LambdaFormTestCase { ...@@ -63,12 +63,17 @@ public abstract class LFCachingTestCase extends LambdaFormTestCase {
} }
if (lambdaForm0 != lambdaForm1) { if (lambdaForm0 != lambdaForm1) {
// Since LambdaForm caches are based on SoftReferences, GC can cause element eviction.
if (noGCHappened()) {
System.err.println("Lambda form 0 toString is:"); System.err.println("Lambda form 0 toString is:");
System.err.println(lambdaForm0); System.err.println(lambdaForm0);
System.err.println("Lambda form 1 toString is:"); System.err.println("Lambda form 1 toString is:");
System.err.println(lambdaForm1); System.err.println(lambdaForm1);
throw new AssertionError("Error: Lambda forms of the two method handles" throw new AssertionError("Error: Lambda forms of the two method handles"
+ " are not the same. LF cahing does not work"); + " are not the same. LF cahing does not work");
} else {
System.err.println("LambdaForms differ, but there was a GC in between. Ignore the failure.");
}
} }
} catch (IllegalAccessException | IllegalArgumentException | } catch (IllegalAccessException | IllegalArgumentException |
SecurityException | InvocationTargetException ex) { SecurityException | InvocationTargetException ex) {
......
...@@ -26,12 +26,12 @@ ...@@ -26,12 +26,12 @@
* @bug 8046703 * @bug 8046703
* @summary Test verifies that lambda forms are garbage collected * @summary Test verifies that lambda forms are garbage collected
* @author kshefov * @author kshefov
* @ignore 8057020
* @library /lib/testlibrary/jsr292 /lib/testlibrary * @library /lib/testlibrary/jsr292 /lib/testlibrary
* @ignore 8057020
* @build TestMethods * @build TestMethods
* @build LambdaFormTestCase * @build LambdaFormTestCase
* @build LFGarbageCollectedTest * @build LFGarbageCollectedTest
* @run main/othervm/timeout=600 -DtestLimit=150 LFGarbageCollectedTest * @run main/othervm LFGarbageCollectedTest
*/ */
import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandle;
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
* @build LambdaFormTestCase * @build LambdaFormTestCase
* @build LFCachingTestCase * @build LFCachingTestCase
* @build LFMultiThreadCachingTest * @build LFMultiThreadCachingTest
* @run main/othervm/timeout=300 LFMultiThreadCachingTest * @run main/othervm LFMultiThreadCachingTest
*/ */
import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandle;
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
* @build LambdaFormTestCase * @build LambdaFormTestCase
* @build LFCachingTestCase * @build LFCachingTestCase
* @build LFSingleThreadCachingTest * @build LFSingleThreadCachingTest
* @run main/othervm/timeout=300 LFSingleThreadCachingTest * @run main/othervm LFSingleThreadCachingTest
*/ */
import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandle;
......
...@@ -23,10 +23,15 @@ ...@@ -23,10 +23,15 @@
import com.oracle.testlibrary.jsr292.Helper; import com.oracle.testlibrary.jsr292.Helper;
import com.sun.management.HotSpotDiagnosticMXBean; import com.sun.management.HotSpotDiagnosticMXBean;
import java.lang.management.GarbageCollectorMXBean;
import java.lang.management.ManagementFactory; import java.lang.management.ManagementFactory;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Collection; import java.util.Collection;
import java.util.List;
import java.util.function.Function; import java.util.function.Function;
import jdk.testlibrary.Utils;
import jdk.testlibrary.TimeLimitedRunner;
/** /**
* Lambda forms caching test case class. Contains all necessary test routines to * Lambda forms caching test case class. Contains all necessary test routines to
...@@ -41,12 +46,18 @@ public abstract class LambdaFormTestCase { ...@@ -41,12 +46,18 @@ public abstract class LambdaFormTestCase {
private final static String INTERNAL_FORM_METHOD_NAME = "internalForm"; private final static String INTERNAL_FORM_METHOD_NAME = "internalForm";
private static final double ITERATIONS_TO_CODE_CACHE_SIZE_RATIO private static final double ITERATIONS_TO_CODE_CACHE_SIZE_RATIO
= 45 / (128.0 * 1024 * 1024); = 45 / (128.0 * 1024 * 1024);
private static final long TIMEOUT = Helper.IS_THOROUGH ? 0L : (long) (Utils.adjustTimeout(Utils.DEFAULT_TEST_TIMEOUT) * 0.9);
/** /**
* Reflection link to {@code j.l.i.MethodHandle.internalForm} method. It is * Reflection link to {@code j.l.i.MethodHandle.internalForm} method. It is
* used to get a lambda form from a method handle. * used to get a lambda form from a method handle.
*/ */
protected final static Method INTERNAL_FORM; protected final static Method INTERNAL_FORM;
private static final List<GarbageCollectorMXBean> gcInfo;
private static long gcCount() {
return gcInfo.stream().mapToLong(GarbageCollectorMXBean::getCollectionCount).sum();
}
static { static {
try { try {
...@@ -56,9 +67,20 @@ public abstract class LambdaFormTestCase { ...@@ -56,9 +67,20 @@ public abstract class LambdaFormTestCase {
} catch (Exception ex) { } catch (Exception ex) {
throw new Error("Unexpected exception: ", ex); throw new Error("Unexpected exception: ", ex);
} }
gcInfo = ManagementFactory.getGarbageCollectorMXBeans();
if (gcInfo.size() == 0) {
throw new Error("No GarbageCollectorMXBeans found.");
}
} }
private final TestMethods testMethod; private final TestMethods testMethod;
private static long totalIterations = 0L;
private static long doneIterations = 0L;
private static boolean passed = true;
private static int testCounter = 0;
private static int failCounter = 0;
private long gcCountAtStart;
/** /**
* Test case constructor. Generates test cases with random method types for * Test case constructor. Generates test cases with random method types for
...@@ -69,12 +91,17 @@ public abstract class LambdaFormTestCase { ...@@ -69,12 +91,17 @@ public abstract class LambdaFormTestCase {
*/ */
protected LambdaFormTestCase(TestMethods testMethod) { protected LambdaFormTestCase(TestMethods testMethod) {
this.testMethod = testMethod; this.testMethod = testMethod;
this.gcCountAtStart = gcCount();
} }
public TestMethods getTestMethod() { public TestMethods getTestMethod() {
return testMethod; return testMethod;
} }
protected boolean noGCHappened() {
return gcCount() == gcCountAtStart;
}
/** /**
* Routine that executes a test case. * Routine that executes a test case.
*/ */
...@@ -88,13 +115,10 @@ public abstract class LambdaFormTestCase { ...@@ -88,13 +115,10 @@ public abstract class LambdaFormTestCase {
* @param testMethods list of test methods * @param testMethods list of test methods
*/ */
public static void runTests(Function<TestMethods, LambdaFormTestCase> ctor, Collection<TestMethods> testMethods) { public static void runTests(Function<TestMethods, LambdaFormTestCase> ctor, Collection<TestMethods> testMethods) {
boolean passed = true;
int testCounter = 0;
int failCounter = 0;
long testCaseNum = testMethods.size(); long testCaseNum = testMethods.size();
long iterations = Math.max(1, Helper.TEST_LIMIT / testCaseNum); totalIterations = Math.max(1, Helper.TEST_LIMIT / testCaseNum);
System.out.printf("Number of iterations according to -DtestLimit is %d (%d cases)%n", System.out.printf("Number of iterations according to -DtestLimit is %d (%d cases)%n",
iterations, iterations * testCaseNum); totalIterations, totalIterations * testCaseNum);
HotSpotDiagnosticMXBean hsDiagBean = ManagementFactory.getPlatformMXBean(HotSpotDiagnosticMXBean.class); HotSpotDiagnosticMXBean hsDiagBean = ManagementFactory.getPlatformMXBean(HotSpotDiagnosticMXBean.class);
long codeCacheSize = Long.parseLong( long codeCacheSize = Long.parseLong(
hsDiagBean.getVMOption("ReservedCodeCacheSize").getValue()); hsDiagBean.getVMOption("ReservedCodeCacheSize").getValue());
...@@ -103,14 +127,18 @@ public abstract class LambdaFormTestCase { ...@@ -103,14 +127,18 @@ public abstract class LambdaFormTestCase {
* ITERATIONS_TO_CODE_CACHE_SIZE_RATIO); * ITERATIONS_TO_CODE_CACHE_SIZE_RATIO);
System.out.printf("Number of iterations limited by code cache size is %d (%d cases)%n", System.out.printf("Number of iterations limited by code cache size is %d (%d cases)%n",
iterationsByCodeCacheSize, iterationsByCodeCacheSize * testCaseNum); iterationsByCodeCacheSize, iterationsByCodeCacheSize * testCaseNum);
if (iterations > iterationsByCodeCacheSize) { if (totalIterations > iterationsByCodeCacheSize) {
iterations = iterationsByCodeCacheSize; totalIterations = iterationsByCodeCacheSize;
} }
System.out.printf("Number of iterations is set to %d (%d cases)%n", System.out.printf("Number of iterations is set to %d (%d cases)%n",
iterations, iterations * testCaseNum); totalIterations, totalIterations * testCaseNum);
System.out.flush(); System.out.flush();
for (long i = 0; i < iterations; i++) { TimeLimitedRunner runner = new TimeLimitedRunner(TIMEOUT, 4.0d,
System.err.println(String.format("Iteration %d:", i)); () -> {
if (doneIterations >= totalIterations) {
return false;
}
System.err.println(String.format("Iteration %d:", doneIterations));
for (TestMethods testMethod : testMethods) { for (TestMethods testMethod : testMethods) {
LambdaFormTestCase testCase = ctor.apply(testMethod); LambdaFormTestCase testCase = ctor.apply(testMethod);
try { try {
...@@ -126,6 +154,15 @@ public abstract class LambdaFormTestCase { ...@@ -126,6 +154,15 @@ public abstract class LambdaFormTestCase {
} }
testCounter++; testCounter++;
} }
doneIterations++;
return true;
});
try {
runner.call();
} catch (Throwable t) {
t.printStackTrace();
System.err.println("FAILED");
throw new Error("Unexpected error!");
} }
if (!passed) { if (!passed) {
throw new Error(String.format("%d of %d test cases FAILED! %n" throw new Error(String.format("%d of %d test cases FAILED! %n"
......
/*
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import java.lang.management.ManagementFactory;
import java.lang.management.ThreadInfo;
import java.security.CodeSource;
import java.security.Permission;
import java.security.PermissionCollection;
import java.security.Permissions;
import java.security.Policy;
import java.security.ProtectionDomain;
import java.util.Enumeration;
import java.util.concurrent.Semaphore;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.LogManager;
import java.util.logging.Logger;
/**
* @test
* @bug 8065991
* @summary check that when LogManager is initialized, a deadlock similar
* to that described in 8065709 will not occur.
* @run main/othervm LogManagerAppContextDeadlock UNSECURE
* @run main/othervm LogManagerAppContextDeadlock SECURE
*
* @author danielfuchs
*/
public class LogManagerAppContextDeadlock {
public static final Semaphore sem = new Semaphore(0);
public static final Semaphore sem2 = new Semaphore(0);
public static final Semaphore sem3 = new Semaphore(-2);
public static volatile boolean goOn = true;
public static volatile Exception thrown;
// Emulate EventQueue
static class FakeEventQueue {
static final Logger logger = Logger.getLogger("foo");
}
// Emulate AppContext
static class FakeAppContext {
final static AtomicInteger numAppContexts = new AtomicInteger(0);
static final class FakeAppContextLock {}
static final FakeAppContextLock lock = new FakeAppContextLock();
static volatile FakeAppContext appContext;
final FakeEventQueue queue;
FakeAppContext() {
appContext = this;
numAppContexts.incrementAndGet();
// release sem2 to let Thread t2 call Logger.getLogger().
sem2.release();
try {
// Wait until we JavaAWTAccess is called by LogManager.
// Thread 2 will call Logger.getLogger() which will
// trigger a call to JavaAWTAccess - which will release
// sem, thus ensuring that Thread #2 is where we want it.
sem.acquire();
System.out.println("Sem acquired: Thread #2 has called JavaAWTAccess");
} catch(InterruptedException x) {
Thread.interrupted();
}
queue = new FakeEventQueue();
}
static FakeAppContext getAppContext() {
synchronized (lock) {
if (numAppContexts.get() == 0) {
return new FakeAppContext();
}
return appContext;
}
}
static {
sun.misc.SharedSecrets.setJavaAWTAccess(new sun.misc.JavaAWTAccess() {
@Override
public Object getAppletContext() {
if (numAppContexts.get() == 0) return null;
// We are in JavaAWTAccess, we can release sem and let
// FakeAppContext constructor proceeed.
System.out.println("Releasing Sem");
sem.release();
return getAppContext();
}
});
}
}
// Test with or without a security manager
public static enum TestCase {
UNSECURE, SECURE;
public void run() throws Exception {
System.out.println("Running test case: " + name());
Configure.setUp(this);
test(this);
}
}
public static void test(TestCase test) throws Exception {
Thread t1 = new Thread() {
@Override
public void run() {
sem3.release();
System.out.println("FakeAppContext.getAppContext()");
FakeAppContext.getAppContext();
System.out.println("Done: FakeAppContext.getAppContext()");
}
};
t1.setDaemon(true);
t1.start();
Thread t2 = new Thread() {
public void run() {
sem3.release();
try {
// Wait until Thread1 is in FakeAppContext constructor
sem2.acquire();
System.out.println("Sem2 acquired: Thread #1 will be waiting to acquire Sem");
} catch (InterruptedException ie) {
Thread.interrupted();
}
System.out.println("Logger.getLogger(name).info(name)");
Logger.getLogger(test.name());//.info(name);
System.out.println("Done: Logger.getLogger(name).info(name)");
}
};
t2.setDaemon(true);
t2.start();
System.out.println("Should exit now...");
Thread detector = new DeadlockDetector();
detector.start();
// Wait for the 3 threads to start
sem3.acquire();
// Now wait for t1 & t2 to finish, or for a deadlock to be detected.
while (goOn && (t1.isAlive() || t2.isAlive())) {
if (t2.isAlive()) t2.join(1000);
if (test == TestCase.UNSECURE && System.getSecurityManager() == null) {
// if there's no security manager, AppContext.getAppContext() is
// not called - so Thread t2 will not end up calling
// sem.release(). In that case we must release the semaphore here
// so that t1 can proceed.
if (LogManager.getLogManager().getLogger(TestCase.UNSECURE.name()) != null) {
// means Thread t2 has created the logger
sem.release();
}
}
if (t1.isAlive()) t1.join(1000);
}
if (thrown != null) {
throw thrown;
}
}
// Thrown by the deadlock detector
static final class DeadlockException extends RuntimeException {
public DeadlockException(String message) {
super(message);
}
@Override
public void printStackTrace() {
}
}
public static void main(String[] args) throws Exception {
if (args.length == 0) {
args = new String[] { "SECURE" };
}
// If we don't initialize LogManager here, there will be
// a deadlock.
// See <https://bugs.openjdk.java.net/browse/JDK-8065709?focusedCommentId=13582038&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13582038>
// for more details.
Logger.getLogger("main").info("starting...");
try {
TestCase.valueOf(args[0]).run();
System.out.println("Test "+args[0]+" Passed");
} catch(Throwable t) {
System.err.println("Test " + args[0] +" failed: " + t);
t.printStackTrace();
}
}
// Called by the deadlock detector when a deadlock is found.
static void fail(Exception x) {
x.printStackTrace();
if (thrown == null) {
thrown = x;
}
goOn = false;
}
// A thread that detect deadlocks.
final static class DeadlockDetector extends Thread {
public DeadlockDetector() {
this.setDaemon(true);
}
@Override
public void run() {
sem3.release();
Configure.doPrivileged(this::loop);
}
public void loop() {
while(goOn) {
try {
long[] ids = ManagementFactory.getThreadMXBean().findDeadlockedThreads();
ids = ids == null ? new long[0] : ids;
if (ids.length == 1) {
throw new RuntimeException("Found 1 deadlocked thread: "+ids[0]);
} else if (ids.length > 0) {
ThreadInfo[] infos = ManagementFactory.getThreadMXBean().getThreadInfo(ids, Integer.MAX_VALUE);
System.err.println("Found "+ids.length+" deadlocked threads: ");
for (ThreadInfo inf : infos) {
System.err.println(inf);
}
throw new DeadlockException("Found "+ids.length+" deadlocked threads");
}
Thread.sleep(100);
} catch(InterruptedException | RuntimeException x) {
fail(x);
}
}
}
}
// A helper class to configure the security manager for the test,
// and bypass it when needed.
static class Configure {
static Policy policy = null;
static final ThreadLocal<AtomicBoolean> allowAll = new ThreadLocal<AtomicBoolean>() {
@Override
protected AtomicBoolean initialValue() {
return new AtomicBoolean(false);
}
};
static void setUp(TestCase test) {
switch (test) {
case SECURE:
if (policy == null && System.getSecurityManager() != null) {
throw new IllegalStateException("SecurityManager already set");
} else if (policy == null) {
policy = new SimplePolicy(TestCase.SECURE, allowAll);
Policy.setPolicy(policy);
System.setSecurityManager(new SecurityManager());
}
if (System.getSecurityManager() == null) {
throw new IllegalStateException("No SecurityManager.");
}
if (policy == null) {
throw new IllegalStateException("policy not configured");
}
break;
case UNSECURE:
if (System.getSecurityManager() != null) {
throw new IllegalStateException("SecurityManager already set");
}
break;
default:
new InternalError("No such testcase: " + test);
}
}
static void doPrivileged(Runnable run) {
allowAll.get().set(true);
try {
run.run();
} finally {
allowAll.get().set(false);
}
}
}
// A Helper class to build a set of permissions.
final static class PermissionsBuilder {
final Permissions perms;
public PermissionsBuilder() {
this(new Permissions());
}
public PermissionsBuilder(Permissions perms) {
this.perms = perms;
}
public PermissionsBuilder add(Permission p) {
perms.add(p);
return this;
}
public PermissionsBuilder addAll(PermissionCollection col) {
if (col != null) {
for (Enumeration<Permission> e = col.elements(); e.hasMoreElements(); ) {
perms.add(e.nextElement());
}
}
return this;
}
public Permissions toPermissions() {
final PermissionsBuilder builder = new PermissionsBuilder();
builder.addAll(perms);
return builder.perms;
}
}
// Policy for the test...
public static class SimplePolicy extends Policy {
final Permissions permissions;
final Permissions allPermissions;
final ThreadLocal<AtomicBoolean> allowAll; // actually: this should be in a thread locale
public SimplePolicy(TestCase test, ThreadLocal<AtomicBoolean> allowAll) {
this.allowAll = allowAll;
// we don't actually need any permission to create our
// FileHandlers because we're passing invalid parameters
// which will make the creation fail...
permissions = new Permissions();
permissions.add(new RuntimePermission("accessClassInPackage.sun.misc"));
// these are used for configuring the test itself...
allPermissions = new Permissions();
allPermissions.add(new java.security.AllPermission());
}
@Override
public boolean implies(ProtectionDomain domain, Permission permission) {
if (allowAll.get().get()) return allPermissions.implies(permission);
return permissions.implies(permission);
}
@Override
public PermissionCollection getPermissions(CodeSource codesource) {
return new PermissionsBuilder().addAll(allowAll.get().get()
? allPermissions : permissions).toPermissions();
}
@Override
public PermissionCollection getPermissions(ProtectionDomain domain) {
return new PermissionsBuilder().addAll(allowAll.get().get()
? allPermissions : permissions).toPermissions();
}
}
}
/* /*
* Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
* @bug 4981829 * @bug 4981829
* @summary Test that the counter monitor, when running in difference mode, * @summary Test that the counter monitor, when running in difference mode,
* emits a notification every time the threshold is exceeded. * emits a notification every time the threshold is exceeded.
* @author Luis-Miguel Alventosa * @author Luis-Miguel Alventosa, Shanliang JIANG
* @run clean CounterMonitorTest * @run clean CounterMonitorTest
* @run build CounterMonitorTest * @run build CounterMonitorTest
* @run main CounterMonitorTest * @run main CounterMonitorTest
...@@ -50,23 +50,31 @@ public class CounterMonitorTest implements NotificationListener { ...@@ -50,23 +50,31 @@ public class CounterMonitorTest implements NotificationListener {
private boolean notifyFlag = true; private boolean notifyFlag = true;
// granularity period // granularity period
private int granularityperiod = 500; private int granularityperiod = 10;
// counter values // derived gauge
private int[] values = new int[] {4, 6, 9, 11}; private volatile int derivedGauge = 2;
// flag to notify that a message has been received // flag to notify that a message has been received
private volatile boolean messageReceived = false; private volatile boolean messageReceived = false;
private volatile Object observedValue = null;
// MBean class // MBean class
public class StdObservedObject implements StdObservedObjectMBean { public class StdObservedObject implements StdObservedObjectMBean {
public Object getNbObjects() { public Object getNbObjects() {
echo(">>> StdObservedObject.getNbObjects: " + count);
synchronized(CounterMonitorTest.class) {
observedValue = count;
CounterMonitorTest.class.notifyAll();
}
return count; return count;
} }
public void setNbObjects(Object n) { public void setNbObjects(Object n) {
echo(">>> StdObservedObject.setNbObjects: " + n);
count = n; count = n;
} }
private Object count= null; private volatile Object count= null;
} }
// MBean interface // MBean interface
...@@ -166,18 +174,18 @@ public class CounterMonitorTest implements NotificationListener { ...@@ -166,18 +174,18 @@ public class CounterMonitorTest implements NotificationListener {
Attribute attrib = new Attribute("NbObjects", data); Attribute attrib = new Attribute("NbObjects", data);
server.setAttribute(stdObsObjName, attrib); server.setAttribute(stdObsObjName, attrib);
// Wait for granularity period (multiplied by 2 for sure) waitObservation(data);
//
Thread.sleep(granularityperiod * 2);
// Loop through the values // Loop through the values
// //
for (int i = 0; i < values.length; i++) { while (derivedGauge++ < 10) {
data = new Integer(values[i]); System.out.print(">>> Set data from " + data.intValue());
echo(">>> Set data = " + data.intValue()); data = new Integer(data.intValue() + derivedGauge);
echo(" to " + data.intValue());
attrib = new Attribute("NbObjects", data); attrib = new Attribute("NbObjects", data);
server.setAttribute(stdObsObjName, attrib); server.setAttribute(stdObsObjName, attrib);
waitObservation(data);
echo("\tdoWait in Counter Monitor"); echo("\tdoWait in Counter Monitor");
doWait(); doWait();
...@@ -214,6 +222,20 @@ public class CounterMonitorTest implements NotificationListener { ...@@ -214,6 +222,20 @@ public class CounterMonitorTest implements NotificationListener {
} }
} }
private void waitObservation(Object value) {
synchronized (CounterMonitorTest.class) {
while (value != observedValue) {
try {
CounterMonitorTest.class.wait();
} catch (InterruptedException e) {
System.err.println("Got unexpected exception: " + e);
e.printStackTrace();
break;
}
}
}
}
/* /*
* Print message * Print message
*/ */
......
<html>
<!--
Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
This code is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License version 2 only, as
published by the Free Software Foundation.
This code is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
version 2 for more details (a copy is included in the LICENSE file that
accompanied this code).
You should have received a copy of the GNU General Public License version
2 along with this work; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
or visit www.oracle.com if you need additional information or have any
questions.
-->
<!--
@test
@bug 8029536
@author Sergey Bylokhov
@run applet/manual=yesno FileFilterDescription.html
-->
<body>
<applet code="FileFilterDescription.class" width=200 height=200></applet>
Follow the instructions below.
1) Check that current filter in the opened JFileChooser is a "CustomFileFilter".
2) Close the JFileChooser.
3) Test will repeat steps 1 - 2 for all supported look and feels.
4) If it's true for all look and feels then the test passed, otherwise it failed.
</body>
</html>
/*
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import java.applet.Applet;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.filechooser.FileFilter;
public final class FileFilterDescription extends Applet {
@Override
public void init() {
}
@Override
public void start() {
try {
test();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static void test() throws Exception {
final UIManager.LookAndFeelInfo[] infos = UIManager
.getInstalledLookAndFeels();
for (final UIManager.LookAndFeelInfo info : infos) {
SwingUtilities.invokeAndWait(() -> {
final JFileChooser chooser = new JFileChooser();
setLookAndFeel(info);
chooser.setAcceptAllFileFilterUsed(false);
chooser.setFileFilter(new CustomFileFilter());
SwingUtilities.updateComponentTreeUI(chooser);
chooser.showDialog(null, "Open");
});
}
}
private static void setLookAndFeel(final UIManager.LookAndFeelInfo info) {
try {
UIManager.setLookAndFeel(info.getClassName());
} catch (ClassNotFoundException | InstantiationException |
UnsupportedLookAndFeelException | IllegalAccessException e) {
throw new RuntimeException(e);
}
}
private static class CustomFileFilter extends FileFilter {
@Override
public boolean accept(final File f) {
return false;
}
@Override
public String getDescription() {
return "CustomFileFilter";
}
}
}
\ No newline at end of file
/*
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package jdk.testlibrary;
import java.util.Objects;
import java.util.concurrent.Callable;
/**
* Auxiliary class to run target w/ given timeout.
*/
public class TimeLimitedRunner implements Callable<Void> {
private final long stoptime;
private final long timeout;
private final double factor;
private final Callable<Boolean> target;
/**
* @param timeout a timeout. zero means no time limitation
* @param factor a multiplier used to estimate next iteration time
* @param target a target to run
* @throws NullPointerException if target is null
* @throws IllegalArgumentException if timeout is negative or
factor isn't positive
*/
public TimeLimitedRunner(long timeout, double factor,
Callable<Boolean> target) {
Objects.requireNonNull(target, "target must not be null");
if (timeout < 0) {
throw new IllegalArgumentException("timeout[" + timeout + "] < 0");
}
if (factor <= 0d) {
throw new IllegalArgumentException("factor[" + factor + "] <= 0");
}
this.stoptime = System.currentTimeMillis() + timeout;
this.timeout = timeout;
this.factor = factor;
this.target = target;
}
/**
* Runs @{linkplan target} while it returns true and timeout isn't exceeded
*/
@Override
public Void call() throws Exception {
long maxDuration = 0L;
long iterStart = System.currentTimeMillis();
if (timeout != 0 && iterStart > stoptime) {
return null;
}
while (target.call()) {
if (timeout != 0) {
long iterDuration = System.currentTimeMillis() - iterStart;
maxDuration = Math.max(maxDuration, iterDuration);
iterStart = System.currentTimeMillis();
if (iterStart + (maxDuration * factor) > stoptime) {
System.out.println("Not enough time to continue execution. "
+ "Interrupted.");
break;
}
}
}
return null;
}
}
...@@ -35,6 +35,7 @@ import java.util.Arrays; ...@@ -35,6 +35,7 @@ import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.concurrent.TimeUnit;
/** /**
* Common library for various test helper functions. * Common library for various test helper functions.
...@@ -67,6 +68,12 @@ public final class Utils { ...@@ -67,6 +68,12 @@ public final class Utils {
TIMEOUT_FACTOR = Double.parseDouble(toFactor); TIMEOUT_FACTOR = Double.parseDouble(toFactor);
} }
/**
* Returns the value of JTREG default test timeout in milliseconds
* converted to {@code long}.
*/
public static final long DEFAULT_TEST_TIMEOUT = TimeUnit.SECONDS.toMillis(120);
private Utils() { private Utils() {
// Private constructor to prevent class instantiation // Private constructor to prevent class instantiation
} }
...@@ -259,4 +266,14 @@ public final class Utils { ...@@ -259,4 +266,14 @@ public final class Utils {
throw t; throw t;
} }
} }
/**
* Adjusts the provided timeout value for the TIMEOUT_FACTOR
* @param tOut the timeout value to be adjusted
* @return The timeout value adjusted for the value of "test.timeout.factor"
* system property
*/
public static long adjustTimeout(long tOut) {
return Math.round(tOut * Utils.TIMEOUT_FACTOR);
}
} }
...@@ -277,9 +277,6 @@ public class bug8024061 { ...@@ -277,9 +277,6 @@ public class bug8024061 {
try { try {
Transferable t = dtde.getTransferable(); Transferable t = dtde.getTransferable();
Object data = t.getTransferData(DropObjectFlavor); Object data = t.getTransferData(DropObjectFlavor);
if (data != null) {
throw new Exception("getTransferData returned non-null");
}
} catch (Exception e) { } catch (Exception e) {
dragEnterException = e; dragEnterException = e;
e.printStackTrace(); e.printStackTrace();
......
...@@ -37,13 +37,13 @@ import static java.lang.System.out; ...@@ -37,13 +37,13 @@ import static java.lang.System.out;
public class StreamingRetry implements Runnable { public class StreamingRetry implements Runnable {
static final int ACCEPT_TIMEOUT = 20 * 1000; // 20 seconds static final int ACCEPT_TIMEOUT = 20 * 1000; // 20 seconds
ServerSocket ss; volatile ServerSocket ss;
public static void main(String[] args) throws IOException { public static void main(String[] args) throws Exception {
(new StreamingRetry()).instanceMain(); (new StreamingRetry()).instanceMain();
} }
void instanceMain() throws IOException { void instanceMain() throws Exception {
out.println("Test with default method"); out.println("Test with default method");
test(null); test(null);
out.println("Test with POST method"); out.println("Test with POST method");
...@@ -54,12 +54,13 @@ public class StreamingRetry implements Runnable { ...@@ -54,12 +54,13 @@ public class StreamingRetry implements Runnable {
if (failed > 0) throw new RuntimeException("Some tests failed"); if (failed > 0) throw new RuntimeException("Some tests failed");
} }
void test(String method) throws IOException { void test(String method) throws Exception {
ss = new ServerSocket(0); ss = new ServerSocket(0);
ss.setSoTimeout(ACCEPT_TIMEOUT); ss.setSoTimeout(ACCEPT_TIMEOUT);
int port = ss.getLocalPort(); int port = ss.getLocalPort();
(new Thread(this)).start(); Thread otherThread = new Thread(this);
otherThread.start();
try { try {
URL url = new URL("http://localhost:" + port + "/"); URL url = new URL("http://localhost:" + port + "/");
...@@ -77,6 +78,7 @@ public class StreamingRetry implements Runnable { ...@@ -77,6 +78,7 @@ public class StreamingRetry implements Runnable {
//expected.printStackTrace(); //expected.printStackTrace();
} finally { } finally {
ss.close(); ss.close();
otherThread.join();
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册