diff --git a/.hgtags b/.hgtags index f2da2298e16b89a80b29cc33dadae0ccfe8bbeac..a21e63513563911dba68854a6d45b5f559952533 100644 --- a/.hgtags +++ b/.hgtags @@ -371,5 +371,6 @@ ffc348308de2e872f5d510d440604c3726a67a18 jdk8u40-b14 31dac938108da722c56a0526fba7f6ae84773056 jdk8u40-b15 9dc67d03e6e540f646f27092ed23e94e95fa789e jdk8u40-b16 fc4f5546417071c70cffd89ca83302309f6f7da9 jdk8u40-b17 +20a3e2135e0867e55af72f0c66a3de558bc613e2 jdk8u40-b18 1ecc234bd38950a2bc047aa253a5e803f0836a4e jdk8u45-b00 e0c7864bbca3f76cde680722f2ae58dff2bff61d jdk8u45-b01 diff --git a/THIRD_PARTY_README b/THIRD_PARTY_README index 6d1c60f23de8bf4c16c5f5f7fad47ccc4f8860ed..c34ce6b31d24d7a65c4e66293fb6f0420ae857b4 100644 --- a/THIRD_PARTY_README +++ b/THIRD_PARTY_README @@ -3385,7 +3385,7 @@ with JRE 8, JDK 8, and OpenJDK 8. included with JRE 8, JDK 8, and OpenJDK 8. Apache Commons Math 3.2 - Apache Derby 10.10.1.3 + Apache Derby 10.11.1.2 Apache Jakarta BCEL 5.1 Apache Jakarta Regexp 1.4 Apache Santuario XML Security for Java 1.5.4 diff --git a/src/linux/doc/man/ja/appletviewer.1 b/src/linux/doc/man/ja/appletviewer.1 index b041bc1f3fa8e68dff9c8b8f45501e3d70dccf90..46c5ea8ab53ec00710faca715b19f5937999c8cc 100644 --- a/src/linux/doc/man/ja/appletviewer.1 +++ b/src/linux/doc/man/ja/appletviewer.1 @@ -27,7 +27,8 @@ .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "appletviewer" "1" "2013年11月21日" "JDK 8" "基本ツール" diff --git a/src/linux/doc/man/ja/extcheck.1 b/src/linux/doc/man/ja/extcheck.1 index d460c84fc8b1a3d1edc51fb8a3cc3b252a343b85..1d9b4992772ab99ed398e7ca654245b15acf05fb 100644 --- a/src/linux/doc/man/ja/extcheck.1 +++ b/src/linux/doc/man/ja/extcheck.1 @@ -27,7 +27,8 @@ .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "extcheck" "1" "2013年11月21日" "JDK 8" "基本ツール" diff --git a/src/linux/doc/man/ja/idlj.1 b/src/linux/doc/man/ja/idlj.1 index 1a3b35d9db9910d6600f4b4efb8b338c95a058ba..cecc503b0122f8cb4de2a4eb2a98c6e29199a8d0 100644 --- a/src/linux/doc/man/ja/idlj.1 +++ b/src/linux/doc/man/ja/idlj.1 @@ -27,7 +27,8 @@ .\" SectDesc: Java IDLおよびRMI-IIOPツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "idlj" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール" diff --git a/src/linux/doc/man/ja/jar.1 b/src/linux/doc/man/ja/jar.1 index 4914a6f38bdbf2fc46e712002dfdafd9c131bc40..77a0d069d41c6086baffa7f36a2f3d72d6da0bdf 100644 --- a/src/linux/doc/man/ja/jar.1 +++ b/src/linux/doc/man/ja/jar.1 @@ -27,7 +27,8 @@ .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jar" "1" "2013年11月21日" "JDK 8" "基本ツール" @@ -384,9 +385,7 @@ JAR .\} .SH "例" .PP -\fB例 1\fR -.br -冗長な出力による現在のディレクトリからのすべてのファイルの追加 +\fB例 1 \fR冗長な出力による現在のディレクトリからのすべてのファイルの追加 .RS 4 .sp .if n \{\ @@ -415,9 +414,7 @@ JAR .\} .RE .PP -\fB例 2\fR -.br -サブディレクトリからのファイルの追加 +\fB例 2 \fRサブディレクトリからのファイルの追加 .RS 4 .sp .if n \{\ @@ -449,9 +446,7 @@ JAR .\} .RE .PP -\fB例 3\fR -.br -JARのコンテンツのリスト +\fB例 3 \fRJARのコンテンツのリスト .RS 4 .sp .if n \{\ @@ -485,9 +480,7 @@ JAR .\} .RE .PP -\fB例 4\fR -.br -索引の追加 +\fB例 4 \fR索引の追加 .RS 4 株式取引のアプリケーションの相互依存クラスを、\fBmain\&.jar\fR、\fBbuy\&.jar\fRおよび\fBsell\&.jar\fRの3つのJARファイルに分割する場合、\fBi\fRオプションを使用します。\fBmain\&.jar\fRマニフェスト内の\fBClass\-Path\fR属性を指定する場合、\fBi\fRオプションを使用して、アプリケーションのクラス・ロードの速度を向上できます。 .sp diff --git a/src/linux/doc/man/ja/jarsigner.1 b/src/linux/doc/man/ja/jarsigner.1 index 055f2294780d0381075d1a62222acf7eeaa29596..1742125b33add0c2ff3444aaab7675423f174363 100644 --- a/src/linux/doc/man/ja/jarsigner.1 +++ b/src/linux/doc/man/ja/jarsigner.1 @@ -27,7 +27,8 @@ .\" SectDesc: セキュリティ・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jarsigner" "1" "2013年11月21日" "JDK 8" "セキュリティ・ツール" @@ -344,7 +345,7 @@ SHA256 .PP これら2つのファイルのベース・ファイル名は、\fB\-sigFile\fRオプションの値から作成されます。たとえば、オプションが\fB\-sigFile MKSIGN\fRの場合、ファイルは\fBMKSIGN\&.SF\fRおよび\fBMKSIGN\&.DSA\fRという名前になります。 .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 @@ -521,7 +522,7 @@ JAR .sp -1 .IP \(bu 2.3 .\} -イタリック体または下線付きの項目(オプションの値)の実際の値は、指定する必要があります。 +イタリックまたは下線付きの項目(オプションの値)の実際の値は、指定する必要があります。 .RE .sp .RS 4 @@ -664,9 +665,9 @@ JAR .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ディレクトリに格納されます。 .sp -ファイル内の文字は、セット\fBa\-zA\-Z0\-9_\-\fRから指定される必要があります。アルファベット、数字、下線およびハイフン文字のみを使用できます。\fB\&.SF\fRおよび\fB\&.DSA\fRのファイル名では、小文字はすべて大文字に変換されます。 +ファイル内の文字は、セット\fBa\-zA\-Z0\-9_\-\fRから指定される必要があります。アルファベット、数字、アンダースコアおよびハイフン文字のみを使用できます。\fB\&.SF\fRおよび\fB\&.DSA\fRのファイル名では、小文字はすべて大文字に変換されます。 .sp -コマンド行で\fB\-sigfile\fRオプションを指定しなかった場合、\fB\&.SF\fRファイルと\fB\&.DSA\fRファイルのベース・ファイル名は、コマンド行で指定された別名の先頭の8文字をすべて大文字に変換したものになります。別名が8文字未満の場合は、別名がそのまま使用されます。別名に、署名ファイル名で無効な文字が含まれている場合、ファイル名を作成するために、該当する文字が下線(_)文字に変換されます。 +コマンド行で\fB\-sigfile\fRオプションを指定しなかった場合、\fB\&.SF\fRファイルと\fB\&.DSA\fRファイルのベース・ファイル名は、コマンド行で指定された別名の先頭の8文字をすべて大文字に変換したものになります。別名が8文字未満の場合は、別名がそのまま使用されます。別名に、署名ファイル名で無効な文字が含まれている場合、ファイル名を作成するために、該当する文字がアンダースコア(_)文字に変換されます。 .RE .PP \-sigalg \fIalgorithm\fR @@ -1001,7 +1002,7 @@ noTimestamp .RE .\} .PP -検証が成功すると、\fBjar verified\fRが表示されます。そうでない場合は、エラー・メッセージが表示されます。\fB\-verbose\fRオプションを使用すると、詳細情報を取得できます。\fBjarsigner\fRを\fB\-verbose\fRオプションとともに使用するサンプルを、次に示します。 +検証が成功すると、\fBjar verified\fRが表示されます。有効でない場合は、エラー・メッセージが表示されます。\fB\-verbose\fRオプションを使用すると、詳細情報を取得できます。\fBjarsigner\fRを\fB\-verbose\fRオプションとともに使用するサンプルを、次に示します。 .sp .if n \{\ .RS 4 diff --git a/src/linux/doc/man/ja/java.1 b/src/linux/doc/man/ja/java.1 index ffca1e2152b565950ecf4a5a9a9dd43503322504..46e5c705073c838df3d3e6b44e3ebd3484d2797c 100644 --- a/src/linux/doc/man/ja/java.1 +++ b/src/linux/doc/man/ja/java.1 @@ -23,14 +23,15 @@ .\" .\" Title: java .\" Language: Japanese -.\" Date: 2014年8月8日 +.\" Date: 2015年3月3日 .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 -.TH "java" "1" "2014年8月8日" "JDK 8" "基本ツール" +.TH "java" "1" "2015年3月3日" "JDK 8" "基本ツール" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -652,7 +653,7 @@ JIT .PP \-Xmx\fIsize\fR .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 次の例では、割り当てられたメモリーの許可される最大サイズを様々な単位を使用して80MBに設定する方法を示します。 .sp @@ -877,14 +878,14 @@ JVM .RS 4 バイトコード・ベリファイアのモードを設定します。バイトコードの検証は一部の問題のトラブルシューティングに役立ちますが、実行中のアプリケーションへのオーバーヘッドを増大させます。このオプションで使用可能な\fImode\fR引数は次のとおりです。 .PP -none +なし .RS 4 バイトコードを検証しません。これにより、起動時間が短縮され、Javaによって提供される保護も軽減されます。 .RE .PP remote .RS 4 -ネットワークを介してリモートでロードされるクラスのみを検証します。これは、\fB\-Xverify\fRオプションを指定しない場合のデフォルトの動作です。 +ブートストラップ・クラス・ローダーでロードされていないこれらのクラスを検証します。これは、\fB\-Xverify\fRオプションを指定しない場合のデフォルトの動作です。 .RE .PP all @@ -938,9 +939,9 @@ JVM .PP \-XX:LargePageSizeInBytes=\fIsize\fR .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 -次の例では、大きいページのサイズを4メガバイト(MB)に設定する方法を示します。 +次の例では、ラージ・ページのサイズを4メガバイト(MB)に設定する方法を示します。 .sp .if n \{\ .RS 4 @@ -995,6 +996,17 @@ JVM .RE .RE .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 .RS 4 リカバリ不能なエラーが発生したときに実行する、カスタム・コマンドまたは一連のセミコロン区切りのコマンドを設定します。文字列に空白が含まれている場合は、引用符で囲む必要があります。 @@ -1018,6 +1030,22 @@ JVM \fBOutOfMemoryError\fR例外が最初にスローされたときに実行する、カスタム・コマンドまたは一連のセミコロン区切りのコマンドを設定します。文字列に空白が含まれている場合は、引用符で囲む必要があります。コマンド文字列の例は、\fB\-XX:OnError\fRオプションの説明を参照してください。 .RE .PP +\-XX:+PerfDataSaveToFile +.RS 4 +有効な場合、Javaアプリケーションの終了時にjstat(1)バイナリ・データを保存します。このバイナリ・データは\fBhsperfdata_\fR\fI\fRという名前のファイルに保存されます。\fI\fRは、実行したJavaアプリケーションのプロセス識別子です。次のように\fBjstat\fRを使用して、このファイルに含まれるパフォーマンス・データを表示します。 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjstat \-class file:///\fR\fB\fI\fR\fR\fB/hsperfdata_\fR\fB\fI\fR\fR +\fBjstat \-gc file:///\fR\fB\fI\fR\fR\fB/hsperfdata_\fR\fB\fI\fR\fR +.fi +.if n \{\ +.RE +.\} +.RE +.PP \-XX:+PrintCommandLineFlags .RS 4 コマンド行に表示された、人間工学的に選択したJVMフラグの印刷を有効にします。これは、ヒープ領域サイズや選択されたガベージ・コレクタなど、JVMによって設定されたエルゴノミック値を確認する場合に役立ちます。デフォルトでは、このオプションは無効であり、フラグは印刷されません。 @@ -1166,25 +1194,32 @@ Windows: JVM内部シグナルの\fBSIGUSR1\fRおよび\fBSIGUSR2\fRのかわりに、代替シグナルの使用を有効にします。デフォルトでは、このオプションは無効であり、代替シグナルは使用されません。このオプションは\fB\-Xusealtsigs\fRと同等です。 .RE .PP -\-XX:+UseBiasedLocking +\-XX:\-UseBiasedLocking .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 デフォルトでは、このオプションは有効になっています。 .RE .PP -\-XX:+UseCompressedOops +\-XX:\-UseCompressedOops .RS 4 -圧縮されたポインタの使用を有効にします。このオプションを有効にすると、オブジェクト参照は、64ビットのポインタではなく32ビットのオフセットとして表され、これにより、32GBより小さいJavaヒープ・サイズのアプリケーションの実行時に、通常、パフォーマンスが向上します。このオプションは、64ビットのJVMでのみ機能します。 +圧縮されたポインタの使用を無効にします。デフォルトではこのオプションが有効であり、Javaヒープ・サイズが32GBより小さい場合に圧縮ポインタが使用されます。このオプションを有効にすると、オブジェクト参照は、64ビットのポインタではなく32ビットのオフセットとして表され、これにより、32GBより小さいJavaヒープ・サイズのアプリケーションの実行時に、通常、パフォーマンスが向上します。このオプションは、64ビットのJVMでのみ機能します。 .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 .PP \-XX:+UseLargePages .RS 4 -大きいページのメモリーの使用を有効にします。このオプションはデフォルトで有効になっています。大きいページのメモリーの使用を無効にするには、\fB\-XX:\-UseLargePages\fRを指定します。 +ラージ・ページのメモリーの使用を有効にします。デフォルトでは、このオプションは無効であり、ラージ・ページのメモリーは使用されません。 .sp -詳細は、http://www\&.oracle\&.com/technetwork/java/javase/tech/largememory\-jsp\-137182\&.htmlにある大きいメモリー・ページ用のJavaサポートを参照してください。 +詳細は、"ラージ・ページ"を参照してください。 .RE .PP \-XX:+UseMembar @@ -1197,6 +1232,13 @@ JVM \fBperfdata\fR機能を有効にします。このオプションはデフォルトで有効になっており、JVMのモニタリングおよびパフォーマンス・テストが可能になります。これを無効にすると、\fBhsperfdata_userid\fRディレクトリの作成を抑制します。\fBperfdata\fR機能を無効にするには、\fB\-XX:\-UsePerfData\fRを指定します。 .RE .PP +\-XX:+UseTransparentHugePages +.RS 4 +Linuxでは、動的に拡張または縮小できるラージ・ページの使用を有効化してください。このオプションは、デフォルトでは無効になっています。OSが他のページを移動してヒュージ・ページを作成するため、透過的ヒュージ・ページでパフォーマンスの問題が検出される場合があります。このオプションは試験的に使用できます。 +.sp +詳細は、"ラージ・ページ"を参照してください。 +.RE +.PP \-XX:+AllowUserSignalHandlers .RS 4 アプリケーションによるシグナル・ハンドラのインストールを有効にします。デフォルトでは、このオプションは無効であり、アプリケーションはシグナル・ハンドラをインストールすることは許可されていません。 @@ -1569,7 +1611,7 @@ JIT .PP \-XX:CompileThreshold=\fIinvocations\fR .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 .if n \{\ .RS 4 @@ -1591,7 +1633,7 @@ JIT .PP \-XX:InitialCodeCacheSize=\fIsize\fR .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 .if n \{\ .RS 4 @@ -1711,7 +1753,17 @@ JIT .PP \-XX:ReservedCodeCacheSize=\fIsize\fR .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 .PP \-XX:+TieredCompilation @@ -1751,39 +1803,52 @@ UseAES カード表の更新前に、カードがすでにマークされているかどうかのチェックを有効にします。このオプションは、デフォルトでは無効になっており、複数のソケットを持つマシン上でのみ使用する必要があります。これにより、同時操作にかなり依存しているJavaアプリケーションのパフォーマンスが向上します。Java HotSpot Server VMのみが、このオプションをサポートしています。 .RE .PP -\-XX:+UseSuperWord +\-XX:+UseRTMDeopt .RS 4 -スカラー演算のスーパーワード演算への変換を有効にします。このオプションはデフォルトで有効になっています。スカラー演算のスーパーワード演算への変換を無効にするには、\fB\-XX:\-UseSuperWord\fRを指定します。Java HotSpot Server VMのみが、このオプションをサポートしています。 +中止率に応じて、RTMロックを自動調整します。この率は、\fB\-XX:RTMAbortRatio\fRオプションによって指定されます。中止されたトランザクション数が中止率を超えた場合、ロックを含むメソッドがすべてのロックで標準のロックとして非最適化および再コンパイルされます。このオプションは、デフォルトでは無効になっています。\fB\-XX:+UseRTMLocking\fRオプションを有効化する必要があります。 .RE -.SS "試験的なJITコンパイラ・オプション" .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 -\-XX:RTMAbortRatio=\fIabort_ratio\fR +\-XX:+UseSHA .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 .PP -\-XX:RTMRetryCount=\fInumber_of_retries\fR +\-XX:+UseSHA1Intrinsics .RS 4 -中止またはビジーの場合、RTMロック・コードは、標準のロック・メカニズムにフォールバックする前にこのオプションによって指定された回数再試行されます。このオプションのデフォルト値は5です。\fB\-XX:UseRTMLocking\fRオプションを有効化する必要があります。 +SHA\-1暗号化ハッシュ関数の組込みを有効にします。 .RE .PP -\-XX:+UseRTMDeopt +\-XX:+UseSHA256Intrinsics .RS 4 -中止率に応じて、RTMロックを自動調整します。この率は、\fB\-XX:RTMAbortRatio\fRオプションによって指定されます。中止されたトランザクション数が中止率を超えた場合、ロックを含むメソッドがすべてのロックで標準のロックとして非最適化および再コンパイルされます。このオプションは、デフォルトでは無効になっています。\fB\-XX:UseRTMLocking\fRオプションを有効化する必要があります。 +SHA\-224およびSHA\-256暗号化ハッシュ関数の組込みを有効にします。 .RE .PP -\-XX:+UseRTMLocking +\-XX:+UseSHA512Intrinsics .RS 4 -フォールバック・ハンドラとして標準のロック・メカニズムを使用して、展開されたすべてのロックに対してRestricted Transactional Memory (RTM)ロック・コードを生成します。このオプションは、デフォルトでは無効になっています。 -.sp -RTMは、x86命令セット拡張でマルチスレッド・アプリケーションの作成を容易にするIntelのTransactional Synchronization Extensions (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により、誤ったキャッシュ・ライン共有(キャッシュ・ライン・ピンポンとも呼ばれる)を削減できます。これは、異なるプロセッサからの複数のスレッドが異なるリソースにアクセスしている場合に発生しますが、リソースは同じキャッシュ・ラインを共有します。結果として、プロセッサは他のプロセッサのキャッシュ・ラインを繰り返し無効にし、これにより、キャッシュではなくメイン・メモリーからの読取りが強制されます。 +SHA\-384およびSHA\-512暗号化ハッシュ関数の組込みを有効にします。 +.RE +.PP +\-XX:+UseSuperWord +.RS 4 +スカラー演算のスーパーワード演算への変換を有効にします。このオプションはデフォルトで有効になっています。スカラー演算のスーパーワード演算への変換を無効にするには、\fB\-XX:\-UseSuperWord\fRを指定します。Java HotSpot Server VMのみが、このオプションをサポートしています。 .RE .SS "高度なサービスアビリティ・オプション" .PP @@ -1855,7 +1920,7 @@ RTM .PP \-XX:+PrintConcurrentLocks .RS 4 -次の印刷を有効化します: j ロック(次の後) \- イベント。デフォルトでは、このオプションは無効です。 +印刷を有効にします ロック(次の後) \- イベント。デフォルトでは、このオプションは無効です。 .sp \fB[Control]+[C]\fRイベント(\fBSIGTERM\fR)後に\fBjava\&.util\&.concurrent\fRロックの印刷を有効にします。デフォルトでは、このオプションは無効です。 .sp @@ -2018,7 +2083,7 @@ G1 .PP \-XX:InitialHeapSize=\fIsize\fR .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 次の例では、割り当てられたメモリーのサイズを様々な単位を使用して6MBに設定する方法を示します。 .sp @@ -2109,7 +2174,7 @@ G1 .PP \-XX:MaxHeapSize=\fIsize\fR .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 次の例では、割り当てられたメモリーの許可される最大サイズを様々な単位を使用して80MBに設定する方法を示します。 .sp @@ -2480,6 +2545,13 @@ CMS シリアル・ガベージ・コレクタの使用を有効にします。ガベージ・コレクションから特別な機能を必要としない、小規模で単純なアプリケーションの場合には、これは一般に最適な選択です。デフォルトでは、このオプションは無効になっており、コレクタは、マシンの構成およびJVMのタイプに基づいて、自動的に選択されます。 .RE .PP +\-XX:+UseSHM +.RS 4 +Linuxでは、JVMで共有メモリーを使用してラージ・ページを設定できるようにします。 +.sp +詳細は、"ラージ・ページ"を参照してください。 +.RE +.PP \-XX:+UseStringDeduplication .RS 4 文字列の重複除外を有効化します。デフォルトでは、このオプションは無効です。このオプションを使用するには、ガベージファースト(G1)・ガベージ・コレクタを有効にする必要があります。\fB\-XX:+UseG1GC\fRオプションを参照してください。 @@ -2502,7 +2574,7 @@ CMS .PP \-Xrun\fIlibname\fR .RS 4 -指定したデバッグ/プロファイルのライブラリをロードします。このオプションは、\fB\-agentlib\fRオプションに取って代わられました。 +指定したデバッグ/プロファイリングのライブラリをロードします。このオプションは、\fB\-agentlib\fRオプションに取って代わられました。 .RE .PP \-XX:CMSIncrementalDutyCycle=\fIpercent\fR @@ -2563,9 +2635,7 @@ GC .PP 次の例では、スループットの最適化またはレスポンス時間の短縮化のいずれかを行うための、試験的なチューニング・フラグの使用方法を示します。 .PP -\fB例 1\fR -.br -スループットを向上するためのチューニング +\fB例 1 \fRスループットを向上するためのチューニング .RS 4 .sp .if n \{\ @@ -2580,9 +2650,7 @@ GC .\} .RE .PP -\fB例 2\fR -.br -レスポンス時間を速くするためのチューニング +\fB例 2 \fRレスポンス時間を速くするためのチューニング .RS 4 .sp .if n \{\ @@ -2596,6 +2664,188 @@ GC .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 "終了ステータス" .PP 通常、次の終了値が起動ツールから返されるのは、起動元が不正な引数で呼び出されたか、深刻なエラーが発生したか、あるいはJVMにより例外がスローされた場合です。ただし、Javaアプリケーションは、API呼出し\fBSystem\&.exit(exitValue)\fRを使用して任意の値を返すことを選択することもできます。値は次のとおりです。 @@ -2666,6 +2916,17 @@ javah(1) .\} jar(1) .RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +jstat(1) +.RE .br 'pl 8.5i 'bp diff --git a/src/linux/doc/man/ja/javac.1 b/src/linux/doc/man/ja/javac.1 index 52a19d43d5a3bf81fbeb990cad6af4698fa229ca..efb99203655e3bbd10f36997e335b478520ff540 100644 --- a/src/linux/doc/man/ja/javac.1 +++ b/src/linux/doc/man/ja/javac.1 @@ -23,14 +23,15 @@ .\" .\" Title: javac .\" Language: Japanese -.\" Date: 2014年8月8日 +.\" Date: 2015年3月3日 .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 -.TH "javac" "1" "2014年8月8日" "JDK 8" "基本ツール" +.TH "javac" "1" "2015年3月3日" "JDK 8" "基本ツール" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -154,7 +155,7 @@ javac \- Java .PP \-cp \fIpath\fR or \-classpath \fIpath\fR .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 \fB\-sourcepath\fRオプションが指定されていない場合、ソース・ファイルもユーザー・クラス・パスから検索されます。 .sp @@ -1122,9 +1123,7 @@ varargs .PP \fBjavac\fRコマンドを実行するときに、各引数ファイルのパスと名前の先頭にアットマーク(@)文字を付けて渡します。\fBjavac\fRコマンドは、アットマーク(@)で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。 .PP -\fB例 1\fR -.br -単一の引数ファイル +\fB例 1 \fR単一の引数ファイル .RS 4 \fBargfile\fRという名前の単一の引数ファイルを使用して、すべての\fBjavac\fR引数を格納する場合は、次のように指定します。 .sp @@ -1141,9 +1140,7 @@ varargs この引数ファイルには、例2で示されている両方のファイルの内容を入れることができます。 .RE .PP -\fB例 2\fR -.br -2つの引数ファイル +\fB例 2 \fR2つの引数ファイル .RS 4 \fBjavac\fRオプション用とソース・ファイル名用に、2つの引数ファイルを作成できます。次のリストには、行の継続文字はありません。 .sp @@ -1216,9 +1213,7 @@ varargs .\} .RE .PP -\fB例 3\fR -.br -パスを使用した引数ファイル +\fB例 3 \fRパスを使用した引数ファイル .RS 4 引数ファイルはパスを指定できますが、ファイル内のすべてのファイル名は、(\fBpath1\fRや\fBpath2\fRではなく)次のように現在の作業ディレクトリに相対的となります。 .sp @@ -1317,9 +1312,7 @@ varargs 名前が\fBcom\&.sun\&.tools\&.javac\fRで始まるパッケージ(\fBcom\&.sun\&.tools\&.javac\fRのサブパッケージ)で検出される他のすべてのクラスおよびメソッドは、完全に内部用であり、いつでも変更される可能性があります。 .SH "例" .PP -\fB例 1\fR -.br -簡単なプログラムのコンパイル +\fB例 1 \fR簡単なプログラムのコンパイル .RS 4 この例では、greetingsディレクトリで\fBHello\&.java\fRソース・ファイルをコンパイルする方法を示しています。\fBHello\&.java\fRで定義されたクラスは、\fBgreetings\&.Hello\fRと呼ばれます。greetingsディレクトリは、ソース・ファイルとクラス・ファイルの両方があるパッケージ・ディレクトリで、現在のディレクトリのすぐ下にあります。これにより、デフォルトのユーザー・クラス・パスを使用できるようになります。また、\fB\-d\fRオプションを使用して別の出力先ディレクトリを指定する必要もありません。 .sp @@ -1372,9 +1365,7 @@ greetings\&.Hello .\} .RE .PP -\fB例 2\fR -.br -複数のソース・ファイルのコンパイル +\fB例 2 \fR複数のソース・ファイルのコンパイル .RS 4 この例では、\fBgreetings\fRパッケージのソース・ファイル\fBAloha\&.java\fR、\fBGutenTag\&.java\fR、\fBHello\&.java\fRおよび\fBHi\&.java\fRをコンパイルします。 .sp @@ -1393,9 +1384,7 @@ greetings\&.Hello .\} .RE .PP -\fB例 3\fR -.br -ユーザー・クラス・パスの指定 +\fB例 3 \fRユーザー・クラス・パスの指定 .RS 4 前述の例のソース・ファイルのうち1つを変更した後に、そのファイルを再コンパイルします。 .sp @@ -1450,9 +1439,7 @@ greetings\&.Hello .\} .RE .PP -\fB例 4\fR -.br -ソース・ファイルとクラス・ファイルの分離 +\fB例 4 \fRソース・ファイルとクラス・ファイルの分離 .RS 4 次の例では、\fBjavac\fRを使用して、JVM 1\&.7上で実行するコードをコンパイルします。 .sp @@ -1486,9 +1473,7 @@ greetings\&.Hello 適切なバージョンのブートストラップ・クラスを指定しない場合、コンパイラは古い言語仕様(この例では、バージョン1\&.7のJavaプログラミング言語)を新しいブートストラップ・クラスと組み合せて使用します。その結果、存在しないメソッドへの参照が含まれていることがあるため、クラス・ファイルが古いプラットフォーム(この場合はJava SE 7)で動作しない可能性があります。 .RE .PP -\fB例 5\fR -.br -クロス・コンパイル +\fB例 5 \fRクロス・コンパイル .RS 4 この例では、\fBjavac\fRを使用して、JVM 1\&.7上で実行するコードをコンパイルします。 .sp @@ -1503,7 +1488,7 @@ greetings\&.Hello .if n \{\ .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 \fB\-bootclasspath\fRオプションを使用して、適切なバージョンのブートストラップ・クラス(\fBrt\&.jar\fRライブラリ)を指定する必要があります。指定しない場合は、コンパイラによって次の警告が生成されます。 .sp diff --git a/src/linux/doc/man/ja/javadoc.1 b/src/linux/doc/man/ja/javadoc.1 index 5be569b72fe501121137d43ff63e4e4fb7285f29..3fe80924bd1126dbac5f3e3b7784938723291bb7 100644 --- a/src/linux/doc/man/ja/javadoc.1 +++ b/src/linux/doc/man/ja/javadoc.1 @@ -23,14 +23,15 @@ .\" .\" Title: javadoc .\" Language: Japanese -.\" Date: 2011年5月10日 +.\" Date: 2015年3月3日 .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 -.TH "javadoc" "1" "2011年5月10日" "JDK 8" "基本ツール" +.TH "javadoc" "1" "2015年3月3日" "JDK 8" "基本ツール" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -359,7 +360,7 @@ package\&.html .IP \(bu 2.3 .\} 処理できるようにコメントをコピーします。package\&.htmlの場合、\fBjavadoc\fRコマンドは、\fB\fRと\fB\fR -HTMLタグ間ですべてのコンテンツをコピーします。\fB\fRセクションを含めて、\fB\fRタグ、ソース・ファイルのコピーライト文、その他の情報を配置することはできますが、これらは生成されるドキュメントには表示されません。 +HTMLタグ間ですべてのコンテンツをコピーします。\fB<title>\fRタグ、ソース・ファイルの著作権文または他の情報を配置する\fB<head>\fRセクションを含めることができますが、これらは生成されたドキュメントに表示されません。 .RE .sp .RS 4 @@ -1425,9 +1426,9 @@ JDK 1\&.0 .RS 4 JDK 1\&.5で導入 .sp -\fB<code>{@literal}</code>\fRと同等です。 +\fB<code>{@literal}</code>\fRと同じです。 .sp -テキストをHTMLマークアップまたはネストされたJavadocタグとして解釈せずに、textをコード・フォントで表示します。これにより、ドキュメンテーション・コメントでは、パラメータの型(\fB<Object>\fR)、不等号(\fB3 < 4\fR)、矢印(\fB<\-\fR)などで、通常の山カッコ(<および>)をHTMLエンティティ(\fB<\fRおよび\fB>\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<\fRおよび\fB>\fR)のかわりに使用できます。たとえば、ドキュメンテーション・コメント・テキスト\fB{@code A<B>C}\fRは、\fBA<B>C\fRとして変更されずに生成されたHTMLページに表示されます。つまり、\fB<B>\fRが太字として解釈されず、そのフォントはコード・フォントになります。コード・フォントなしで同じ機能を実現するには、\fB{@literal}\fRタグを使用します。 .RE .PP @deprecated \fIdeprecated\-text\fR @@ -1594,7 +1595,7 @@ JDK 1\&.4 .RS 4 JDK 1\&.5で導入 .sp -テキストをHTMLマークアップまたはネストされたJavadocタグとして解釈せずに、textを表示します。これにより、ドキュメンテーション・コメントでは、パラメータの型(\fB<Object>\fR)、不等号(\fB3 < 4\fR)、矢印(<\-)などで、山カッコ(\fB<および>\fR)をHTMLエンティティ(\fB<\fRおよび\fB>\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<\fRおよび\fB>\fR)のかわりに使用できます。たとえば、ドキュメンテーション・コメント・テキスト\fB{@literal A<B>C}\fRは、\fBA<B>C\fRとしてブラウザの生成されたHTMLページで変更されずに表示されます。\fB<B>\fRは太字として解釈されません(コード・フォントになりません)。コード・フォントで同じ機能を実現するには、\fB{@code}\fRタグを使用します。 .RE .PP @param \fIparameter\-name description\fR @@ -1664,7 +1665,7 @@ JDK 1\&.0 .sp "The Java Programming Language" .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 \fB関連項目\fR: .sp @@ -1673,7 +1674,7 @@ Java Spec \fB形式3\fR。\fB@see package\&.class#member label\fR形式は、表示テキスト・ラベルとともにリンクを追加します。このラベルは参照されているJava言語の指定された名前のドキュメントを指し示します。ラベルはオプションです。ラベルを省略した場合は、表示テキストのかわりに、名前が適切に短縮されて表示されます。\fB\-noqualifier\fRオプションを使用すると、この表示テキストからパッケージ名が全体的に削除されます。ラベルは、自動生成される表示テキストとは異なる表示テキストにする場合に使用します。「名前が表示される方法」を参照してください。 .sp 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 .RS 4 .ie n \{\ @@ -2290,15 +2291,677 @@ Javadoc .RE .PP オプションは次のとおりです。 -.PP -\-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 || - -\-overview path/filename || -\-package || \-private || \-protected || \-public || \-quiet || \-serialwarn || \-source release || \-sourcepath sourcepathlist || \-sourcetab tablength || \-splitindex || - -\-stylesheet path/filename || - -||\-subpackages package1:package2:\&.\&.\&. || \-tag tagname:Xaoptcmf:"taghead" || \-taglet class || \-tagletpath tagletpathlist || \-title title || \-top || \-use || \-verbose || \-version || \-windowtitle title +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\-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 次のオプションは、すべてのドックレットに使用可能なコアの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オプション" @@ -2306,7 +2969,7 @@ Javadoc \-overview \fIpath/filename \fR .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 \fBfilename\fRの値で任意の名前を使用し、pathで任意の配置先を指定できますが、通常はoverview\&.htmlという名前を付け、ソース・ツリー内の最上位パッケージ・ディレクトリを含むディレクトリに配置します。この場所に配置すると、パッケージをドキュメント化するときにpathを指定する必要がなくなります。これは、\fB\-sourcepath\fRオプションによってこのファイルが指し示されるからです。 .sp @@ -2316,7 +2979,7 @@ Javadoc .sp \fIpath/filename\fRで指定するファイルについては、概要コメント・ファイルを参照してください。 .sp -概要ページが作成されるのは、\fBjavadoc\fRコマンドに複数のパッケージ名を渡した場合のみです。詳細は、HTMLフレームを参照してください。概要ページのタイトルは、\fB\-doctitle\fRによって設定されます。 +「概要」ページが作成されるのは、\fBjavadoc\fRコマンドに複数のパッケージ名を渡した場合のみです。詳細は、HTMLフレームを参照してください。「概要」ページのタイトルは、\fB\-doctitle\fRによって設定されます。 .RE .PP \-Xdoclint:(all|none|[\-]\fI<group>\fR) @@ -2537,8 +3200,9 @@ Javadoc 1\&.4 \-sourcepath \fIsourcepathlist\fR .RS 4 パッケージ名または\fB\-subpackages\fRオプションを\fBjavadoc\fRコマンドに渡すときに、ソース・ファイルを見つけるための検索パスを指定します。 - +.sp 複数のパスはコロン(:)で区切ります。 +.sp \fBjavadoc\fRコマンドは、指定されたパス以下のすべてのサブディレクトリを検索します。このオプションを使用して、ドキュメント化されるソース・ファイルの位置のみでなく、それ自体はドキュメント化されないがドキュメント化されるソース・ファイルから継承されたコメントを持つソース・ファイルの位置も確認できます。 .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コマンドは現在のディレクトリ(およびそのサブディレクトリ)からソース・ファイルを検索します。 @@ -2578,8 +3242,9 @@ Javadoc 1\&.4 \-classpath \fIclasspathlist\fR .RS 4 \fBjavadoc\fRコマンドが参照クラスの検索を行うときに使用するパスを指定します。参照クラスとは、ドキュメント化されるクラスと、それらのクラスによって参照されるすべてのクラスのことです。 - +.sp 複数のパスはコロン(:)で区切ります。 +.sp \fBjavadoc\fRコマンドは、指定されたパス以下のすべてのサブディレクトリを検索します。\fBclasspathlist\fRの値を指定するときは、クラス・パスのドキュメントにある指示に従ってください。 .sp \fB\-sourcepath\fRが省略された場合、\fBjavadoc\fRコマンドは\fB\-classpath\fRを使用して、ソース・ファイルおよびクラス・ファイルを検索します(後方互換性のため)。ソース・ファイルとクラス・ファイルを別々のパスから検索する必要がある場合は、\fB\-sourcepath\fRと\fB\-classpath\fRの両方を使用します。 @@ -2689,7 +3354,7 @@ Javadoc 1\&.4 .sp -1 .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 .sp 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 \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 +.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 .if n \{\ .RE @@ -2740,12 +3424,12 @@ Java SE 1\&.5 .RS 4 \fBjavadoc\fRコマンドが生成されたHTMLファイルを保存する生成先ディレクトリを指定します。\fB\-d\fRオプションを省略すると、ファイルは現在のディレクトリに保存されます。\fBdirectory\fRの値には、絶対ディレクトリ、または現在の作業ディレクトリからの相対ディレクトリを指定できます。Java SE 1\&.4では、\fBjavadoc\fRコマンドを実行すると生成先ディレクトリが自動的に作成されます。 .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 .PP \-use .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 .PP \-version @@ -2847,9 +3531,7 @@ HTML .PP 外部APIドキュメントへの絶対URLを使用する場合(そのURLに接続し、読取りを行うことがシェルによって許可されていない場合)は\fB\-linkoffline\fRオプションを使用します。このような状況は、ファイアウォールの内側からファイアウォールの外側にあるドキュメントにリンクしようとする場合に発生します。 .PP -\fB例 1\fR -.br -外部ドキュメントへの絶対リンク +\fB例 1 \fR外部ドキュメントへの絶対リンク .RS 4 http://docs\&.oracle\&.com/javase/8/docs/api/index\&.htmlに示すような、\fBjava\&.lang\fR、\fBjava\&.io\fRおよびその他のJavaプラットフォーム・パッケージにリンクする場合、次のコマンドを使用します .sp @@ -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などの他のオプションは表示されません。 .RE .PP -\fB例 2\fR -.br -外部ドキュメントへの相対リンク +\fB例 2 \fR外部ドキュメントへの相対リンク .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 .sp @@ -3034,7 +3714,7 @@ package\-list .PP ドキュメントの更新 .PP -プロジェクトに何十または何百のパッケージが含まれる場合にも、\fB\-linkoffline\fRオプションを使用できます。ソース・ツリー全体ですでに\fBjavadoc\fRコマンドを実行したことがある場合、ドキュメンテーション・コメントにわずかな変更を迅速に加え、ソース・ツリーの一部で\fBjavadoc\fRコマンドを再実行することができます。2回目の実行は、ドキュメンテーション・コメントを変更し、宣言は変更しない場合にのみ正しく処理されることに注意してください。ソース・コードに対して宣言を追加、削除、または変更した場合は、索引、パッケージ・ツリー、継承されるメンバーのリスト、使用ページなどの場所で、リンクが壊れることがあります。 +プロジェクトに何十または何百のパッケージが含まれる場合にも、\fB\-linkoffline\fRオプションを使用できます。ソース・ツリー全体ですでに\fBjavadoc\fRコマンドを実行したことがある場合、ドキュメンテーション・コメントにわずかな変更を迅速に加え、ソース・ツリーの一部で\fBjavadoc\fRコマンドを再実行することができます。2回目の実行は、ドキュメンテーション・コメントを変更し、宣言は変更しない場合にのみ正しく処理されることに注意してください。ソース・コードに対して宣言を追加、削除、または変更した場合は、索引、パッケージ・ツリー、継承されるメンバーのリスト、「使用」ページなどの場所で、リンクが壊れることがあります。 .PP まず、この新しい小規模な実行で使用する、新しい生成先ディレクトリ(updateなど)を作成します。この例では、元の生成先ディレクトリの名前はhtmlです。最も単純な例では、htmlディレクトリの親ディレクトリに移動します。\fB\-linkoffline\fRオプションの第1引数にカレント・ディレクトリ(\&.)を設定し、第2引数にpackage\-listが検索されるhtmlへの相対パスを設定し、更新するパッケージのパッケージ名のみを渡します。 .sp @@ -3053,7 +3733,7 @@ package\-list .PP \-linksource .RS 4 -各ソース・ファイル(行番号付き)のHTMLバージョンを作成し、標準HTMLドキュメントからソース・ファイルへのリンクを追加します。リンクは、ソース・ファイル内に宣言されているクラス、インタフェース、コンストラクタ、メソッド、フィールドに対して作成されます。そうでない場合、たとえばデフォルト・コンストラクタや生成されたクラスに対しては、リンクは作成されません。 +各ソース・ファイル(行番号付き)のHTMLバージョンを作成し、標準HTMLドキュメントからソース・ファイルへのリンクを追加します。リンクは、ソース・ファイル内に宣言されているクラス、インタフェース、コンストラクタ、メソッド、フィールドに対して作成されます。デフォルト・コンストラクタ、生成されたクラスなどに対しては作成されません。 .sp このオプションは、\fB\-public\fR、\fB\-package\fR、\fB\-protected\fRおよび\fB\-private\fRの各オプションとは関係なく、非公開のクラス、フィールド、非公開のメソッドの本体をはじめとする組み込まれたソース・ファイル内のすべての非公開実装の詳細を公開します。\fB\-private\fRオプションもあわせて指定しないかぎり、非公開のクラスやインタフェースの一部には、リンクを介してアクセスできないことがあります。 .sp @@ -3342,7 +4022,7 @@ HTML .sp 標準タグは、最初、デフォルトの順序でリスト内に内部的に格納されます。\fB\-tag\fRオプションを使用すると、それらのタグはこのリストに追加されます。標準タグは、デフォルトの位置から移動されます。そのため、標準タグの\fB\-tag\fRオプションを省略すると、それはデフォルトの位置に配置されたままになります。 .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 \fB注釈vs\&. Javadocタグ\fR: 一般に、追加する必要のあるマークアップが、ドキュメントに影響を与えたりドキュメントを生成したりするためのものである場合、そのマークアップはJavadocタグにします。それ以外の場合は注釈にします。JavadocツールでのDocコメントの記述方法のカスタム・タグと注釈に関する項 (http://www\&.oracle\&.com/technetwork/java/javase/documentation/index\-137868\&.html#annotations)を参照してください。 @@ -3428,16 +4108,12 @@ doc\-files .PP \fBjavadoc\fRを実行するときに、各引数ファイルのパスとファイル名の先頭に@文字を付けて渡します。\fBjavadoc\fRコマンドは、アットマーク(@)文字で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。 .PP -\fB例 1\fR -.br -単一の引数ファイル +\fB例 1 \fR単一の引数ファイル .RS 4 \fBargfile\fRという名前の1つの引数ファイルを使用して、すべての\fBjavadoc\fRコマンド引数を保持できます。\fBjavadoc @argfile\fR次の例に示すように、この引数ファイルには両方のファイルの内容が含まれています。 .RE .PP -\fB例 2\fR -.br -2つの引数ファイル +\fB例 2 \fR2つの引数ファイル .RS 4 次のように、2つの引数ファイルを作成できます。\fBjavadoc\fRコマンドのオプション用に1つ、パッケージ名またはソース・ファイル名用に1つです。次のリストでは行継続文字を使用していません。 .sp @@ -3490,9 +4166,7 @@ doc\-files .\} .RE .PP -\fB例 3\fR -.br -パスを使用した引数ファイル +\fB例 3 \fRパスを使用した引数ファイル .RS 4 引数ファイルはパスを指定できますが、ファイル内のすべてのファイル名は、(\fBpath1\fRや\fBpath2\fRではなく)次のように現在の作業ディレクトリに相対的となります。 .sp @@ -3508,9 +4182,7 @@ doc\-files .\} .RE .PP -\fB例 4\fR -.br -オプション引数 +\fB例 4 \fRオプション引数 .RS 4 次に、\fBjavadoc\fRコマンドのオプションに対する引数を引数ファイルに格納する例を示します。長い引数を指定できるので、\fB\-bottom\fRオプションを使用します。次のようなテキスト引数を含む、bottomという名前のファイルを作成できます。 .sp @@ -3557,12 +4229,9 @@ Java .PP ディレクトリの変更(\fBcd\fRコマンドを使用)または\fB\-sourcepath\fRオプションにより、\fBjavadoc\fRコマンドを実行できます。次の例で両方の選択肢を示します。 .PP -\fB例 1\fR -.br -1つ以上のパッケージから再帰的に実行 +\fB例 1 \fR1つ以上のパッケージから再帰的に実行 .RS 4 -この例では\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の引数に追加します。 +この例では\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の引数に追加します。 .sp .if n \{\ .RS 4 @@ -3576,9 +4245,7 @@ Java .\} .RE .PP -\fB例 2\fR -.br -ルートへの移動および明示的なパッケージの実行 +\fB例 2 \fRルートへの移動および明示的なパッケージの実行 .RS 4 完全修飾されたパッケージの親ディレクトリに移動します。次に、ドキュメント化する1つ以上のパッケージの名前を指定して\fBjavadoc\fRコマンドを実行します。 .sp @@ -3596,9 +4263,7 @@ Java また、他のパッケージ・ツリーを下方にたどるには、j\fBava:javax:org\&.xml\&.sax\fRのように、それらのパッケージの名前を\fB\-subpackages\fRの引数に追加します。 .RE .PP -\fB例 3\fR -.br -1つのツリーの明示的なパッケージの任意のディレクトリから実行 +\fB例 3 \fR1つのツリーの明示的なパッケージの任意のディレクトリから実行 .RS 4 この場合、現在のディレクトリがどこかは問題ではありません。\fBjavadoc\fRコマンドを実行し、最上位パッケージの親ディレクトリを指定して\fB\-sourcepath\fRオプションを使用します。ドキュメント化する1つ以上のパッケージの名前を指定します。 .sp @@ -3614,9 +4279,7 @@ Java .\} .RE .PP -\fB例 4\fR -.br -複数のツリーの明示的なパッケージの任意のディレクトリから実行 +\fB例 4 \fR複数のツリーの明示的なパッケージの任意のディレクトリから実行 .RS 4 \fBjavadoc\fRコマンドを実行し、各ツリーのルートへのパスのコロン区切りリストを指定して\fB\-sourcepath\fRオプションを使用します。ドキュメント化する1つ以上のパッケージの名前を指定します。指定したパッケージのすべてのソース・ファイルが、1つのルート・ディレクトリの下に存在する必要はありませんが、ソース・パスで指定された場所のどこかで見つかる必要があります。 .sp @@ -3637,9 +4300,7 @@ Java .PP また、1つ以上のソース・ファイルを渡して、\fBjavadoc\fRコマンドを実行することもできます。\fBjavadoc\fRは、次の2つの方法のいずれかで実行できます。1つはディレクトリを変更する方法(\fBcd\fRを使用)、もう1つはソース・ファイルへのパスを完全に指定する方法です。相対パスは、現在のディレクトリを起点とします。ソース・ファイルを渡すときは、\fB\-sourcepath\fRオプションは無視されます。アスタリスク(*)のようなコマンド行ワイルドカードを使用すると、クラスのグループを指定できます。 .PP -\fB例 1\fR -.br -ソース・ディレクトリに変更 +\fB例 1 \fRソース・ディレクトリに変更 .RS 4 ソースを保持するディレクトリに変更します。次に、ドキュメント化する1つ以上のソース・ファイルの名前を指定して\fBjavadoc\fRコマンドを実行します。 .sp @@ -3658,9 +4319,7 @@ Java .\} .RE .PP -\fB例 2\fR -.br -パッケージのルート・ディレクトリに変更 +\fB例 2 \fRパッケージのルート・ディレクトリに変更 .RS 4 これは、同じルートからの別のサブパッケージの個々のソース・ファイルをドキュメント化するのに役立ちます。パッケージのルート・ディレクトリに移り、各ソース・ファイルを、ルートからのパスとともに指定します。 .sp @@ -3677,9 +4336,7 @@ Java .\} .RE .PP -\fB例 3\fR -.br -任意のディレクトリからのファイルのドキュメント化 +\fB例 3 \fR任意のディレクトリからのファイルのドキュメント化 .RS 4 この場合、現在のディレクトリがどこかは問題ではありません。ドキュメント化するソース・ファイルへの絶対パス(または現在のディレクトリからの相対パス)を指定して\fBjavadoc\fRコマンドを実行します。 .sp diff --git a/src/linux/doc/man/ja/javah.1 b/src/linux/doc/man/ja/javah.1 index c32c1f0ab5ae53cacd456767eca233c4736a82fb..51b8d0a05e144f69d05f09a91bb6e97722b6a8e7 100644 --- a/src/linux/doc/man/ja/javah.1 +++ b/src/linux/doc/man/ja/javah.1 @@ -27,7 +27,8 @@ .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "javah" "1" "2013年11月21日" "JDK 8" "基本ツール" @@ -77,7 +78,7 @@ C .PP \fBjavah\fRコマンドは、ネイティブ・メソッドを実装するために必要なCヘッダーとソース・ファイルを生成します。作成されたヘッダーとソース・ファイルは、ネイティブ・ソース・コードからオブジェクトのインスタンス変数を参照するためにCプログラムによって使用されます。\fB\&.h\fRファイルは、対応するクラスと一致する配置を持つ\fBstruct\fR定義を含みます。\fBstruct\fRのフィールドは、クラスのインスタンス変数に対応します。 .PP -ヘッダー・ファイルとその中で宣言される構造体の名前はクラスの名前から派生します。\fBjavah\fRコマンドに渡されるクラスがパッケージの中にある場合、パッケージ名はヘッダー・ファイル名と構造体名の両方の先頭に付加されます。下線(_)が名前の区切り文字として使用されます。 +ヘッダー・ファイルとその中で宣言される構造体の名前はクラスの名前から派生します。\fBjavah\fRコマンドに渡されるクラスがパッケージの中にある場合、パッケージ名はヘッダー・ファイル名と構造体名の両方の先頭に付加されます。アンダースコア(_)が名前の区切り文字として使用されます。 .PP デフォルトでは\fBjavah\fRコマンドは、コマンド行にリストされる各クラスのヘッダー・ファイルを作成し、現在のディレクトリにファイルを置きます。ソース・ファイルを作成するには、\fB\-stubs\fRオプションを使用してください。1つのファイルの中に、リストされたすべてのクラスの結果を連結するには、\fB\-o\fRオプションを使用してください。 .PP diff --git a/src/linux/doc/man/ja/javap.1 b/src/linux/doc/man/ja/javap.1 index 68355d53a484bdbbf161d69be07104a3f0d6c75c..6e16d9a5b7b3e781fffa571354bbd3922e6e20dc 100644 --- a/src/linux/doc/man/ja/javap.1 +++ b/src/linux/doc/man/ja/javap.1 @@ -27,7 +27,8 @@ .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "javap" "1" "2014年8月8日" "JDK 8" "基本ツール" diff --git a/src/linux/doc/man/ja/javaws.1 b/src/linux/doc/man/ja/javaws.1 index d37d342ff98ba167f446224aaa836607c1d97c54..b33d08d4e71bcd18253e0af8b061de399f7e5192 100644 --- a/src/linux/doc/man/ja/javaws.1 +++ b/src/linux/doc/man/ja/javaws.1 @@ -27,7 +27,8 @@ .\" SectDesc: Java Web Startツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "javaws" "1" "2013年11月21日" "JDK 8" "Java Web Startツール" diff --git a/src/linux/doc/man/ja/jcmd.1 b/src/linux/doc/man/ja/jcmd.1 index 5a273ca05d087d3edfcf628b33cf53c6ef45912f..5424e834d5c89e2b14400cac95219b4783af9506 100644 --- a/src/linux/doc/man/ja/jcmd.1 +++ b/src/linux/doc/man/ja/jcmd.1 @@ -27,7 +27,8 @@ .\" SectDesc: トラブルシューティング・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jcmd" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" diff --git a/src/linux/doc/man/ja/jconsole.1 b/src/linux/doc/man/ja/jconsole.1 index 149f5a1dc1d72c12f60327b2dc5e32a7e165e777..1a4660f30bbd7fb0e160a094022b615907674f6a 100644 --- a/src/linux/doc/man/ja/jconsole.1 +++ b/src/linux/doc/man/ja/jconsole.1 @@ -27,7 +27,8 @@ .\" SectDesc: Javaトラブルシューティング、プロファイリング、モニタリングおよび管理ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .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 .RE .SH "説明" .PP -\fBjconsole\fRコマンドは、ローカル・マシンまたはリモート・マシン上のJavaアプリケーションと仮想マシンをモニターおよび管理するグラフィカル・コンソール・ツールを起動します。 +\fBjconsole\fRコマンドは、ローカル・マシンまたはリモート・マシン上のJavaアプリケーションと仮想マシンのモニターと管理を行うグラフィカル・コンソール・ツールを起動します。 .PP Windows上では、\fBjconsole\fRコマンドはコンソール・ウィンドウと関連付けられていません。ただし、\fBjconsole\fRコマンドが失敗すると、エラー情報を示すダイアログ・ボックスが表示されます。 .SH "オプション" @@ -93,7 +94,7 @@ Windows .PP \-notile .RS 4 -最初はウィンドウをタイル表示しません(複数接続の場合)。 +最初にウィンドウをタイル表示しません(複数接続の場合)。 .RE .PP \-pluginpath \fIplugins\fR diff --git a/src/linux/doc/man/ja/jdb.1 b/src/linux/doc/man/ja/jdb.1 index fd4bb1fd52838110612d40649939affac7f5bfbf..0b9702e7b8fa85b713b64314d5a5f5bdfe832f81 100644 --- a/src/linux/doc/man/ja/jdb.1 +++ b/src/linux/doc/man/ja/jdb.1 @@ -27,7 +27,8 @@ .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jdb" "1" "2013年11月21日" "JDK 8" "基本ツール" @@ -318,7 +319,7 @@ Java HotSpot VM .RS 4 JVMに\fBoption\fRを渡します。optionには、Javaアプリケーション起動ツールのリファレンス・ページに記載されているオプションを1つ指定します。たとえば、\fB\-J\-Xms48m\fRと指定すると、スタートアップ・メモリーは48MBに設定されます。java(1)を参照してください。 .RE -.SH "デバッグ対象のプロセスに転送されるオプション" +.SH "デバッガ・プロセスに転送されるオプション" .PP \-v \-verbose[:\fIclass\fR|gc|jni] .RS 4 diff --git a/src/linux/doc/man/ja/jdeps.1 b/src/linux/doc/man/ja/jdeps.1 index 0a9692d67483bc9e9d75f0cd1a677f232fc4ddc7..f2951ef99fb7e06af320dea5edf4a08d2ae74cb0 100644 --- a/src/linux/doc/man/ja/jdeps.1 +++ b/src/linux/doc/man/ja/jdeps.1 @@ -27,7 +27,8 @@ .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jdeps" "1" "2013年11月21日" "JDK 8" "基本ツール" @@ -113,7 +114,7 @@ DOT .RS 4 クラス・ファイルの検索場所を指定します。 .sp -Setting the Class Path も参照してください。 +クラス・パスの設定 も参照してください。 .RE .PP \-p <\fIpkg name\fR> diff --git a/src/linux/doc/man/ja/jhat.1 b/src/linux/doc/man/ja/jhat.1 index 98fdbf0040bd026d6903a5c13d7c1f1b953e69d6..8f107c526ddce6c1d624bc4b287972aaa84399b8 100644 --- a/src/linux/doc/man/ja/jhat.1 +++ b/src/linux/doc/man/ja/jhat.1 @@ -27,7 +27,8 @@ .\" SectDesc: トラブルシューティング・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jhat" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" diff --git a/src/linux/doc/man/ja/jinfo.1 b/src/linux/doc/man/ja/jinfo.1 index cb2044b749f26545936e7bd542005c3c1dbd6b00..adb82c7466f8ce3186b1f2c0bc8827a5a545f92f 100644 --- a/src/linux/doc/man/ja/jinfo.1 +++ b/src/linux/doc/man/ja/jinfo.1 @@ -27,7 +27,8 @@ .\" SectDesc: トラブルシューティング・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jinfo" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" @@ -115,7 +116,7 @@ jinfo \- .RE .SH "説明" .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。 .PP このユーティリティはサポート対象外であり、将来のJDKのリリースでは利用できなくなる可能性があります。\fBdbgeng\&.dll\fRが存在していないWindowsシステムでは、Debugging Tools For Windowsをインストールしないとこれらのツールが正常に動作しません。\fBPATH\fR環境変数には、ターゲット・プロセスによって使用されるjvm\&.dllの場所、またはクラッシュ・ダンプ・ファイルが生成された場所が含まれるようにしてください。たとえば、\fBset PATH=%JDK_HOME%\ejre\ebin\eclient;%PATH%\fRです。 diff --git a/src/linux/doc/man/ja/jjs.1 b/src/linux/doc/man/ja/jjs.1 index b99a6406967050179796b983a41d08654c36429b..88d636820e2c155ab0b6482fc88844ce0c778b7e 100644 --- a/src/linux/doc/man/ja/jjs.1 +++ b/src/linux/doc/man/ja/jjs.1 @@ -23,14 +23,15 @@ .\" .\" Title: jjs .\" Language: Japanese -.\" Date: 2013年11月21日 +.\" Date: 2015年3月3日 .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 -.TH "jjs" "1" "2013年11月21日" "JDK 8" "基本ツール" +.TH "jjs" "1" "2015年3月3日" "JDK 8" "基本ツール" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -113,7 +114,7 @@ jjs \- Nashorn .PP \-cp \fIpath\fR .br -\-\-classpath \fIpath\fR +\-classpath \fIpath\fR .RS 4 サポートするクラスへのパスを指定します。複数のパスを設定するには、このオプションを繰り返すか、または各パスをコロン(:)で区切ります。 .RE @@ -221,6 +222,11 @@ jjs \- Nashorn このオプションを繰り返し使用すると、複数の\fBjava\fRコマンド・オプションを渡すことができます。 .RE .PP +\-\-language=[es5] +.RS 4 +ECMAScript言語バージョンを指定します。デフォルトのバージョンはES5です。 +.RE +.PP \-\-lazy\-compilation .RS 4 レイジー・コード生成戦略(つまり、スクリプト全体が一度にコンパイルされない)を有効にします。このオプションは試験的なものです。 @@ -240,13 +246,17 @@ jjs \- Nashorn .\} .nf \fB\-\-log=fields:finest,codegen:info\fR - .fi .if n \{\ .RE .\} .RE .PP +\-\-optimistic\-types=[true|false] +.RS 4 +再コンパイルの最適化を解除してオプティミスティック・タイプ仮定を有効または無効にします。オプティミスティック・タイプを使用した実行によって最終的な速度が向上しますが、ウォームアップ時間が増える場合があります。 +.RE +.PP \-\-package=\fIname\fR .RS 4 生成されたクラス・ファイルを追加するパッケージを指定します。 @@ -323,7 +333,7 @@ jjs \- Nashorn .br \-timezone=\fIzone\fR .RS 4 -スクリプトの実行に対し指定したタイム・ゾーンを設定します。OSで設定されたタイム・ゾーンをオーバーライドし、\fBDate\fRオブジェクトで使用されます。 +スクリプトの実行に対し指定したタイムゾーンを設定します。OSで設定されたタイムゾーンをオーバーライドし、\fBDate\fRオブジェクトで使用されます。 .RE .PP \-tcs=\fIparameter\fR @@ -366,9 +376,7 @@ Nashorn .RE .SH "例" .PP -\fB例 1\fR -.br -Nashornを使用したスクリプトの実行 +\fB例 1 \fRNashornを使用したスクリプトの実行 .RS 4 .sp .if n \{\ @@ -383,9 +391,7 @@ Nashorn .\} .RE .PP -\fB例 2\fR -.br -対話型モードでのNashornの実行 +\fB例 2 \fR対話型モードでのNashornの実行 .RS 4 .sp .if n \{\ @@ -404,9 +410,7 @@ Nashorn .\} .RE .PP -\fB例 3\fR -.br -Nashornへの引数の渡し +\fB例 3 \fRNashornへの引数の渡し .RS 4 .sp .if n \{\ diff --git a/src/linux/doc/man/ja/jmap.1 b/src/linux/doc/man/ja/jmap.1 index c0c1fcdcd1b355f8dc67ff74a39ab06fb3e521bc..48320f2e7c64e8a621ad22358ab6fae23d7e3f57 100644 --- a/src/linux/doc/man/ja/jmap.1 +++ b/src/linux/doc/man/ja/jmap.1 @@ -27,7 +27,8 @@ .\" SectDesc: トラブルシューティング・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jmap" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" diff --git a/src/linux/doc/man/ja/jps.1 b/src/linux/doc/man/ja/jps.1 index 06b4abec4839605e95c87a7af687dc2a91b878d9..99783f408f79e120ee28498daed75733422c224e 100644 --- a/src/linux/doc/man/ja/jps.1 +++ b/src/linux/doc/man/ja/jps.1 @@ -27,7 +27,8 @@ .\" SectDesc: モニタリング・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jps" "1" "2013年11月21日" "JDK 8" "モニタリング・ツール" diff --git a/src/linux/doc/man/ja/jrunscript.1 b/src/linux/doc/man/ja/jrunscript.1 index a7082b97c37e5fa959d605f57091ffc67d7189ed..958e8ba8ee4ceae0fe3882ef8246d6ab9fcbe72a 100644 --- a/src/linux/doc/man/ja/jrunscript.1 +++ b/src/linux/doc/man/ja/jrunscript.1 @@ -27,7 +27,8 @@ .\" SectDesc: スクリプティング・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jrunscript" "1" "2013年11月21日" "JDK 8" "スクリプティング・ツール" @@ -86,7 +87,7 @@ jrunscript \- \-cp \fIpath\fR .RS 4 \fB\-classpath\fR -\fBpath\fRと同じです。 +\fIpath\fRと同じです。 .RE .PP \-D\fIname\fR=\fIvalue\fR @@ -96,7 +97,7 @@ Java .PP \-J\fIflag\fR .RS 4 -\fBflag\fRを、\fBjrunscript\fRコマンドが実行されているJava Virtual Machineに直接渡します。 +\fBflag\fRを、\fBjrunscript\fRコマンドが実行されているJava仮想マシンに直接渡します。 .RE .PP \-I \fIlanguage\fR diff --git a/src/linux/doc/man/ja/jsadebugd.1 b/src/linux/doc/man/ja/jsadebugd.1 index cb19efa749ef9eff5a22b241f467cd1a3c28e1d2..0b1988a7143727cb33839ebeb87ffc6050cef180 100644 --- a/src/linux/doc/man/ja/jsadebugd.1 +++ b/src/linux/doc/man/ja/jsadebugd.1 @@ -27,7 +27,8 @@ .\" SectDesc: トラブルシューティング・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jsadebugd" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" @@ -95,7 +96,7 @@ jsadebugd \- Java .RE .SH "説明" .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 .if n \{\ .RS 4 diff --git a/src/linux/doc/man/ja/jstack.1 b/src/linux/doc/man/ja/jstack.1 index c2486f8819fdfc7255a958294fa4aed3ef3a6b70..6c302c0190098ab8cba28e913c9a642157051666 100644 --- a/src/linux/doc/man/ja/jstack.1 +++ b/src/linux/doc/man/ja/jstack.1 @@ -27,7 +27,8 @@ .\" SectDesc: トラブルシューティング・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jstack" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" @@ -115,7 +116,7 @@ jstack \- Java .RE .SH "説明" .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)。 .PP \fB注意\fR diff --git a/src/linux/doc/man/ja/jstat.1 b/src/linux/doc/man/ja/jstat.1 index 9528b6fbdbbe5349a611e1b855977b370bfd8c71..d47a29fa7a6a368b3a756d432768b603d552bbe1 100644 --- a/src/linux/doc/man/ja/jstat.1 +++ b/src/linux/doc/man/ja/jstat.1 @@ -23,14 +23,15 @@ .\" .\" Title: jstat .\" Language: Japanese -.\" Date: 2011年5月10日 +.\" Date: 2015年3月3日 .\" SectDesc: モニタリング・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 -.TH "jstat" "1" "2011年5月10日" "JDK 8" "モニタリング・ツール" +.TH "jstat" "1" "2015年3月3日" "JDK 8" "モニタリング・ツール" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -276,6 +277,10 @@ Java HotSpot VM Just\-in\-Time .sp \fBMU\fR: メタスペースの使用率(KB)。 .sp +\fBCCSC\fR: 圧縮されたクラス領域の容量(KB)。 +.sp +\fBCCSU\fR: 使用されている圧縮されたクラス領域(KB)。 +.sp \fBYGC\fR: 若い世代のガベージ・コレクション・イベントの数。 .sp \fBYGCT\fR: 若い世代のガベージ・コレクション時間。 @@ -317,6 +322,12 @@ Java HotSpot VM Just\-in\-Time .sp \fBMC\fR: メタスペースの容量(KB)。 .sp +\fBCCSMN\fR: 圧縮されたクラス領域の最小容量(KB)。 +.sp +\fBCCSMX\fR: 圧縮されたクラス領域の最大容量(KB)。 +.sp +\fBCCSC\fR: 圧縮されたクラス領域の容量(KB)。 +.sp \fBYGC\fR: 若い世代のGCイベント数。 .sp \fBFGC\fR: フルGCイベント数。 @@ -326,11 +337,9 @@ Java HotSpot VM Just\-in\-Time .RS 4 このオプションは、\fB\-gcutil\fRオプションと同じガベージ・コレクション統計データのサマリーを表示しますが、最後のガベージ・コレクション・イベントと(適用可能な場合は)現在のガベージ・コレクション・イベントの原因が含まれます。\fB\-gcutil\fRで一覧表示される列のほか、このオプションでは次の列が追加されます。 .sp -ガベージ・コレクション・イベントを含むガベージ・コレクション統計データ。 -.sp -\fBLGCC\fR: 最後のガベージ・コレクションの原因。 +\fBLGCC\fR: 最後のガベージ・コレクションの原因 .sp -\fBGCC\fR: 現在のガベージ・コレクションの原因。 +\fBGCC\fR: 現在のガベージ・コレクションの原因 .RE .PP \-gcnew \fIoption\fR @@ -364,7 +373,7 @@ New .RS 4 New世代領域サイズの統計データ。 .sp -NGCMN: New世代の最小容量(KB)。 +\fBNGCMN\fR: New世代の最小容量(KB)。 .sp \fBNGCMX\fR: New世代の最大容量(KB)。 .sp @@ -395,6 +404,10 @@ Old .sp \fBMU\fR: メタスペースの使用率(KB)。 .sp +\fBCCSC\fR: 圧縮されたクラス領域の容量(KB)。 +.sp +\fBCCSU\fR: 使用されている圧縮されたクラス領域(KB)。 +.sp \fBOC\fR: Old領域の現在の容量(KB)。 .sp \fBOU\fR: Old領域の使用率(KB)。 @@ -439,6 +452,10 @@ Permanent .sp \fBMC\fR: メタスペースの容量(KB)。 .sp +\fBCCSMN\fR: 圧縮されたクラス領域の最小容量(KB)。 +.sp +\fBCCSMX\fR: 圧縮されたクラス領域の最大容量(KB)。 +.sp \fBYGC\fR: 若い世代のGCイベント数。 .sp \fBFGC\fR: フルGCイベント数。 @@ -462,6 +479,8 @@ Permanent .sp \fBM\fR: メタスペースの使用率(領域の現在の容量に対するパーセンテージ)。 .sp +\fBCCS\fR: 圧縮されたクラス領域の使用率(パーセンテージ)。 +.sp \fBYGC\fR: 若い世代のGCイベント数。 .sp \fBYGCT\fR: 若い世代のガベージ・コレクション時間。 @@ -493,29 +512,28 @@ Java HotSpot VM .PP この例では、lvmid 21891に接続して、250ミリ秒間隔で7つのサンプルを取得し、\-\fBgcutil\fRオプションでの指定に従って出力を表示します。 .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 .if n \{\ .RS 4 .\} .nf \fBjstat \-gcutil 21891 250 7\fR -\fB S0 S1 E O M 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 -\fB0\&.00 99\&.74 13\&.49 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR -\fB0\&.00 99\&.74 13\&.49 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR -\fB0\&.00 99\&.74 13\&.49 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR -\fB0\&.00 99\&.74 13\&.80 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR -\fB0\&.00 99\&.74 13\&.80 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR -\fB0\&.00 99\&.74 13\&.80 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR - +\fB S0 S1 E O M CCS YGC YGCT FGC FGCT GCT \fR +\fB 0\&.00 97\&.02 70\&.31 66\&.80 95\&.52 89\&.14 7 0\&.300 0 0\&.000 0\&.300\fR +\fB 0\&.00 97\&.02 86\&.23 66\&.80 95\&.52 89\&.14 7 0\&.300 0 0\&.000 0\&.300\fR +\fB 0\&.00 97\&.02 96\&.53 66\&.80 95\&.52 89\&.14 7 0\&.300 0 0\&.000 0\&.300\fR +\fB 91\&.03 0\&.00 1\&.98 68\&.19 95\&.89 91\&.24 8 0\&.378 0 0\&.000 0\&.378\fR +\fB 91\&.03 0\&.00 15\&.82 68\&.19 95\&.89 91\&.24 8 0\&.378 0 0\&.000 0\&.378\fR +\fB 91\&.03 0\&.00 17\&.80 68\&.19 95\&.89 91\&.24 8 0\&.378 0 0\&.000 0\&.378\fR +\fB 91\&.03 0\&.00 17\&.80 68\&.19 95\&.89 91\&.24 8 0\&.378 0 0\&.000 0\&.378\fR .fi .if n \{\ .RE .\} .SS "列ヘッダー文字列の繰返し" .PP -この例では、lvmid 21891に接続して、250ミリ秒間隔でサンプルを取得し、\fB\-gcutil\fRオプションでの指定に従って出力を表示します。さらに、\fB\-h3\fRオプションを使用して、データが3行表示されるごとに列ヘッダーを出力します。 +この例では、lvmid 21891に接続して、250ミリ秒間隔でサンプルを取得し、\fB\-gcnew\fRオプションでの指定に従って出力を表示します。さらに、\fB\-h3\fRオプションを使用して、データが3行表示されるごとに列ヘッダーを出力します。 .PP この例では、ヘッダー文字列の繰返しが表示されているほか、2番目と3番目のサンプル間でYoung GCが行われたことがわかります。この継続時間は0\&.001秒でした。このコレクションでは、Survivor領域0の使用率(S0U)が適切なSurvivorサイズ(DSS)を超過することになるアクティブ・データが検出されました。この結果、オブジェクトは、Old世代(この出力には非表示)へ昇格され、殿堂入りしきい値(TT)が、31から2へ降格されました。 .PP @@ -545,7 +563,7 @@ Java HotSpot VM .PP この例では、lvmid21891へ接続し、250ミリ秒間隔で3つのサンプルを取得しています。\fB\-t\fRオプションを使用して、最初の列にサンプルごとのタイムスタンプを表示しています。 .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 .if n \{\ .RS 4 @@ -564,7 +582,7 @@ Timestamp .PP この例は、\fB\-gcutil\fRオプションを使用して、remote\&.domainというシステム上のlvmid 40496に接続し、サンプルを秒単位で無期限に取得しています。 .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 .if n \{\ .RS 4 diff --git a/src/linux/doc/man/ja/jstatd.1 b/src/linux/doc/man/ja/jstatd.1 index 66be86783e53b9da46bb8f61aee93a9cc822027f..42e94e633bc327ecbdee8669660e38106042eec8 100644 --- a/src/linux/doc/man/ja/jstatd.1 +++ b/src/linux/doc/man/ja/jstatd.1 @@ -27,7 +27,8 @@ .\" SectDesc: モニタリング・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jstatd" "1" "2013年11月21日" "JDK 8" "モニタリング・ツール" diff --git a/src/linux/doc/man/ja/jvisualvm.1 b/src/linux/doc/man/ja/jvisualvm.1 index d8cf68514b37be9f41cb727dd8ea56006953acf4..0f4043dfc2f3cb3e9ba2ca97bec305367acb410b 100644 --- a/src/linux/doc/man/ja/jvisualvm.1 +++ b/src/linux/doc/man/ja/jvisualvm.1 @@ -27,7 +27,8 @@ .\" SectDesc: Javaトラブルシューティング、プロファイリング、モニタリングおよび管理ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jvisualvm" "1" "2013年11月21日" "JDK 8" "Javaトラブルシューティング、プロファイリング、モニタリン" @@ -51,7 +52,7 @@ .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "名前" -jvisualvm \- Javaアプリケーションを視覚的にモニターし、トラブルシューティングとプロファイリングを行います。 +jvisualvm \- Javaアプリケーションを視覚的にモニター、トラブルシュートおよびプロファイルします。 .SH "概要" .sp .if n \{\ diff --git a/src/linux/doc/man/ja/keytool.1 b/src/linux/doc/man/ja/keytool.1 index fdfc6903c7e85426b85a6359918496b2d4e4f818..c80a82755f1bf54e83658af43a3dd76ab8bf4edc 100644 --- a/src/linux/doc/man/ja/keytool.1 +++ b/src/linux/doc/man/ja/keytool.1 @@ -23,14 +23,15 @@ .\" .\" Title: keytool .\" Language: Japanese -.\" Date: 2013年8月6日 +.\" Date: 2015年3月3日 .\" SectDesc: セキュリティ・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 -.TH "keytool" "1" "2013年8月6日" "JDK 8" "セキュリティ・ツール" +.TH "keytool" "1" "2015年3月3日" "JDK 8" "セキュリティ・ツール" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -375,7 +376,7 @@ keytool \- .sp -1 .IP \(bu 2.3 .\} -イタリック体になっていないすべての項目、または中カッコか角カッコで囲まれているすべての項目は、そのとおりに指定する必要があります。 +イタリックになっていないすべての項目、または中カッコか角カッコで囲まれているすべての項目は、そのとおりに指定する必要があります。 .RE .sp .RS 4 @@ -408,11 +409,19 @@ keytool \- .sp -1 .IP \(bu 2.3 .\} -イタリック体の項目の実際の値(オプションの値)は、指定する必要があります。たとえば、\fB\-printcert\fRコマンドの形式は次のとおりです。 +イタリックの項目の実際の値(オプションの値)は、指定する必要があります。たとえば、\fB\-printcert\fRコマンドの形式は次のとおりです。 .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 -\fB\-printcert\fRコマンドを指定する場合は、\fBcert_file\fRを実際のファイル名で置き換えます。例: +\fB\-printcert\fRコマンドを指定する場合は、\fIcert_file\fRを実際のファイル名で置き換えます。例: \fBkeytool \-printcert \-file VScert\&.cer\fR .RE .sp @@ -624,8 +633,7 @@ EKU SANまたはSubjectAlternativeName .RS 4 \fB値\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の文字列形式の値です。 +\fBtype\fR:\fBvalue\fR(t\fBype:value\fR)*、\fBtype\fRには\fBEMAIL\fR、\fBURI\fR、\fBDNS\fR、\fBIP\fRまたは\fBOID\fRを指定できます。\fBvalue\fR引数は、\fBtype\fRの文字列形式の値です。 .RE .PP IANまたはIssuerAlternativeName @@ -662,8 +670,66 @@ AIA .PP \-gencert .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 +.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 \fB\-certreq\fRコマンドで作成可能)に対するレスポンスとして証明書を生成します。このコマンドは、\fIinfile\fRから(省略した場合は、標準入力から)リクエストを読み込み、別名の秘密鍵を使用してそのリクエストに署名して、X\&.509証明書を\fIoutfile\fRに(省略した場合は、標準出力に)出力します。\fB\-rfc\fRを指定した場合、出力形式はBASE64符号化のPEMになります。それ以外の場合は、バイナリDERが作成されます。 .sp @@ -724,8 +790,66 @@ AIA .PP \-genkeypair .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 +.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で特定される新しいキーストア・エントリに格納されます。 .sp \fBkeyalg\fR値は鍵ペアの生成に使用するアルゴリズムを、\fBkeysize\fR値は生成する各鍵のサイズを、それぞれ指定します。\fBsigalg\fR値は、自己署名証明書に署名を付けるために使用するアルゴリズムを指定します。このアルゴリズムは\fBkeyalg\fR値と互換性がある必要があります。 @@ -758,7 +882,7 @@ AIA .if n \{\ .RE .\} -2番目の形式では、ユーザーは、年/月/日と時間:分:秒の2つの部分からなる正確な発行時刻を設定します(ローカルのタイム・ゾーンを使用)。ユーザーは、1つの部分のみを指定できます。これは、もう1つの部分は現在の日付(または時刻)と同じになるということです。ユーザーは、形式の定義に示されているように、桁数を厳密に指定する必要があります(短い場合は0で埋めます)。日付と時刻の両方が指定された状態で、2つの部分の間に空白文字が1つ(1つのみ)あります。時間は常に24時間形式で指定してください。 +2番目の形式では、ユーザーは、年/月/日と時間:分:秒の2つの部分で厳密な開始時刻を設定します(地元の時間帯を使用)。ユーザーは、1つの部分のみを指定できます。これは、もう1つの部分は現在の日付(または時刻)と同じになるということです。ユーザーは、形式の定義に示されているように、桁数を厳密に指定する必要があります(短い場合は0で埋めます)。日付と時刻の両方が指定された状態で、2つの部分の間に空白文字が1つ(1つのみ)あります。時間は常に24時間形式で指定してください。 .sp オプションを指定しないと、開始日付は現在の時刻になります。オプションは、最大で1回指定できます。 .sp @@ -769,8 +893,46 @@ AIA .PP \-genseckey .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 +.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で特定される)内に格納します。 .sp \fBkeyalg\fR値は鍵ペアの生成に使用するアルゴリズムを、\fBkeysize\fR値は生成する各鍵のサイズを、それぞれ指定します。\fBkeypass\fR値は、秘密鍵を保護するパスワードです。パスワードを指定しなかった場合は、パスワードの入力を求められます。このとき、[Return]キーを押すと、\fBkeystore\fRのパスワードと同じパスワードが鍵のパスワードに設定されます。\fBkeypass\fR値は、6文字以上にする必要があります。 @@ -778,8 +940,56 @@ AIA .PP \-importcert .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 +.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から証明書または証明書チェーンを読み込みます。 .sp \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 .PP \-importpassword .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 -パスフレーズをインポートし、\fBalias\fRで識別される新規\fBKeyStore\&.SecretKeyEntry\fRに格納します。パスフレーズは、標準入力ストリームを介して提供できます。または、ユーザーにそのプロンプトが表示されます。\fBkeypass\fRは、インポートされるパスフレーズの保護に使用されるパスワードです。パスワードを指定しなかった場合は、パスワードの入力を求められます。このとき、[Return]キーを押すと、\fBkeystore\fRのパスワードと同じパスワードが鍵のパスワードに設定されます。\fBkeypass\fRは、6文字以上にする必要があります。 -.RE -.PP -\-importkeystore +.if n \{\ .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 -ソース・キーストアからターゲット・キーストアへ、単一のエントリまたはすべてのエントリをインポートします。 -.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 -ターゲット別名がターゲット・キーストア内にすでに存在していた場合、ユーザーは、そのエントリを上書きするか、あるいは異なる別名の下で新しいエントリを作成するかの選択を求められます。 +.\} +.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 +.fi +.if n \{\ +.RE +.\} .sp - -\fB\-noprompt\fRオプションを指定した場合、ユーザーは新しいターゲット別名の入力を求められません。既存のエントリがそのターゲット別名で上書きされます。インポートできないエントリはスキップされ、警告が出力されます。 +.if n \{\ +.RS 4 +.\} +.nf +\fB[\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR +.fi +.if n \{\ .RE -.PP -\-printcertreq +.\} +.sp +.if n \{\ .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 -PKCS#10形式の証明書リクエストの内容を出力します。このリクエストは、\fBkeytool\fR -\fB\-certreq\fRコマンドで生成できます。このコマンドは、ファイルからリクエストを読み取ります。ファイルが存在しない場合、リクエストは標準入力から読み取られます。 +.if n \{\ +.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 .PP -\-certreq +\-importkeystore .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 -PKCS#10形式を使用して証明書署名リクエスト(CSR)を生成します。 -.sp -CSRは、証明書発行局(CA)に送信することを目的としたものです。CAは、証明書要求者を(通常はオフラインで)認証し、証明書または証明書チェーンを送り返します。この証明書または証明書チェーンは、キーストア内の既存の証明書チェーン(最初は1つの自己署名証明書から構成される)に置き換えて使用します。 +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-srcstoretype \fR\fB\fIsrcstoretype\fR\fR\fB} {\-deststoretype \fR\fB\fIdeststoretype\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} .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 \fBsigalg\fR値には、CSRに署名を付けるときに使用するアルゴリズムを指定します。 .sp @@ -839,8 +1221,46 @@ CA .PP \-exportcert .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 +.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に証明書が出力されます。 .sp デフォルトでは、証明書はバイナリ符号化で出力されます。\fB\-rfc\fRオプションが指定されている場合、出力可能符号化方式の出力はインターネットRFC 1421証明書符号化規格で定義されます。 @@ -852,8 +1272,46 @@ CA .PP \-list .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 +.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が指定されていない場合は、キーストア全体の内容が表示されます。 .sp このコマンドは、デフォルトでは証明書のSHA1フィンガープリントを表示します。 @@ -864,8 +1322,26 @@ CA .PP \-printcert .RS 4 -\fB{\-file cert_file | \-sslserver host[:port]} {\-jarfile JAR_file {\-rfc} {\-v} {\-Jjavaoption}\fR .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から証明書を読み込みます。 .sp \fB\-rfc\fRが指定されている場合、\fBkeytool\fRコマンドは、インターネットRFC 1421証明書符号化標準で定義されているように、PEMモードで証明書を出力します。インターネットRFC 1421証明書符号化規格を参照してください。 @@ -881,8 +1357,16 @@ SSL .PP \-printcrl .RS 4 -\fB\-file crl_ {\-v}\fR .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を生成します。 .sp \fB注意:\fR @@ -891,15 +1375,91 @@ SSL .PP \-storepasswd .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 +.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文字以上である必要があります。 .RE .PP \-keypasswd .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 +.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文字以上である必要があります。 .sp コマンド行で\fB\-keypass\fRオプションを指定しておらず、鍵のパスワードがキーストアのパスワードと異なる場合は、鍵のパスワードの入力を求められます。 @@ -909,15 +1469,91 @@ SSL .PP \-delete .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 +.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によって特定されるエントリをキーストアから削除します。コマンド行で別名を指定しなかった場合は、別名の入力を求められます。 .RE .PP \-changealias .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 +.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(指定された場合)がまず試みられます。その試みが失敗すると、ユーザーはパスワードの入力を求められます。 .RE .PP @@ -971,7 +1607,7 @@ SSL 以降では、オプションを指定しないで\fB\-genkeypair\fRコマンドを実行したものとして例を示します。情報の入力を求められた場合は、最初に示した\fB\-genkeypair\fRコマンドの値を入力したものとします。たとえば識別名には\fBcn=Mark Jones\fR、\fBou=Java\fR、\fBo=Oracle\fR、\fBc=US\fRと指定します。 .SS "CAからの署名付き証明書のリクエスト" .PP -自己署名証明書を作成する鍵のペアの生成。証明書に証明書発行局(CA)の署名が付いていれば、他のユーザーから証明書が信頼される可能性も高くなります。CAの署名を取得するには、まず、証明書署名リクエスト(CSR)を生成します。たとえば、次のようにします。 +自己署名証明書を作成する鍵のペアの生成。証明書に認証局(CA)の署名が付いていれば、他のユーザーから証明書が信頼される可能性も高くなります。CAの署名を取得するには、まず、証明書署名リクエスト(CSR)を生成します。たとえば、次のようにします。 .sp .if n \{\ .RS 4 @@ -1015,7 +1651,7 @@ CA .PP \fBcacerts\fRキーストア・ファイルは、いくつかのVeriSignルートCA証明書を含んだ状態で出荷されているので、VeriSignの証明書を、信頼できる証明書としてキーストア内にインポートする必要がない場合があります。ただし、他のCAに対して署名付き証明書をリクエストしていて、このCAの公開鍵を認証する証明書が、\fBcacerts\fRにまだ追加されていない場合は、該当するCAからの証明書を、「信頼できる証明書」としてインポートする必要があります。 .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 証明書が有効であると信頼する場合は、次のコマンドでキーストアに追加できます。 .sp @@ -1182,7 +1818,7 @@ ABCCA\&.cer .if n \{\ .RE .\} -パスワードが、\fBdukekeypasswd\fRから\fBnewpass\fRに変更されます。テストを目的とする場合、または安全であることがわかっているシステムで実行する場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。必要なパスワードのオプションをコマンド行で指定しなかった場合は、パスワードの入力を求められます。 +パスワードが、\fBdukekeypasswd\fRから\fBnewpass\fRに変更されます。テスト目的の場合、またはセキュアなシステムを使用している場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。必要なパスワードのオプションをコマンド行で指定しなかった場合は、パスワードの入力を求められます。 .RE .PP キーストアの実装 @@ -1260,9 +1896,9 @@ Java .sp \fBエンティティ\fR: エンティティは、人、組織、プログラム、コンピュータ、企業、銀行など、一定の度合いで信頼の対象となる様々なものを指します。 .sp -公開鍵暗号化では、ユーザーの公開鍵にアクセスする必要があります。大規模なネットワーク環境では、互いに通信しているエンティティ間で以前の関係が引続き確立されていると仮定したり、使用されているすべての公開鍵を収めた信頼できるリポジトリが存在すると仮定したりすることは不可能です。このような公開鍵の配布に関する問題を解決するために証明書が考案されました。現在では、証明書発行局(CA)が信頼できる第三者として機能します。CAは、他のエンティティの証明書に署名する(発行する)行為を、信頼して任されているエンティティ(企業など)です。CAは法律上の契約に拘束されるので、有効かつ信頼できる証明書のみを作成するものとして扱われます。VeriSign、Thawte、Entrustをはじめ、多くの公的な証明書発行局が存在します。 +公開鍵暗号化では、ユーザーの公開鍵にアクセスする必要があります。大規模なネットワーク環境では、互いに通信しているエンティティ間で以前の関係が引続き確立されていると仮定したり、使用されているすべての公開鍵を収めた信頼できるリポジトリが存在すると仮定したりすることは不可能です。このような公開鍵の配布に関する問題を解決するために証明書が考案されました。現在では、認証局(CA)が信頼できる第三者として機能します。CAは、他のエンティティの証明書に署名する(発行する)行為を、信頼して任されているエンティティ(企業など)です。CAは法律上の契約に拘束されるので、有効かつ信頼できる証明書のみを作成するものとして扱われます。VeriSign、Thawte、Entrustをはじめ、多くの公的な認証局が存在します。 .sp -Microsoftの認証サーバー、EntrustのCA製品などを所属組織内で利用すれば、独自の証明書発行局を運営することも可能です。\fBkeytool\fRコマンドを使用すると、証明書の表示、インポートおよびエクスポートを行うことができます。また、自己署名証明書を生成することもできます。 +Microsoftの認証サーバー、EntrustのCA製品などを所属組織内で利用すれば、独自の認証局を運営することも可能です。\fBkeytool\fRコマンドを使用すると、証明書の表示、インポートおよびエクスポートを行うことができます。また、自己署名証明書を生成することもできます。 .sp 現在、\fBkeytool\fRコマンドはX\&.509証明書を対象にしています。 .RE @@ -1312,7 +1948,7 @@ X\&.509 Version 3 .sp 鍵を初めて作成すると、自己署名証明書という1つの要素のみを含むチェーンが開始されます。コマンドの\fB\-genkeypair\fRを参照してください。自己署名証明書は発行者(署名者)が主体と同じです。主体は、その公開鍵が証明書によって認証されるエンティティです。\fB\-genkeypair\fRコマンドを呼び出して新しい公開鍵と秘密鍵のペアを作成すると、公開鍵は常に自己署名証明書でラップされます。 .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 CAの公開鍵を認証する証明書は、多くの場合、自己署名証明書(つまりCAが自身の公開鍵を認証した証明書)であり、これはチェーンの最初の証明書になります。場合によっては、CAが証明書のチェーンを返すこともあります。この場合、チェーン内の最後の証明書(CAによって署名され、鍵エントリの公開鍵を認証する証明書)に変わりはありませんが、チェーン内のその前の証明書は、CSRの送信先のCAとは別のCAによって署名され、CSRの送信先のCAの公開鍵を認証する証明書になります。チェーン内のその前の証明書は、次のCAの鍵を認証する証明書になります。以下同様に、自己署名された「ルート」証明書に達するまでチェーンが続きます。したがって、チェーン内の(最初の証明書以後の)各証明書では、チェーン内の次の証明書の署名者の公開鍵が認証されていることになります。 .sp @@ -1399,7 +2035,7 @@ X\&.500 .if n \{\ .RE .\} -イタリック体の項目は、実際に指定する値を表します。短縮形のキーワードの意味は、次のとおりです。 +イタリックの項目は、実際に指定する値を表します。短縮形のキーワードの意味は、次のとおりです。 .sp .if n \{\ .RS 4 @@ -1527,7 +2163,7 @@ Oracle Solaris 証明書をインポートする前に\fB\-printcert\fRコマンドを実行する必要はありません。キーストア内の信頼できる証明書のリストに証明書を追加する前に、\fB\-importcert\fRコマンドによって証明書の情報が表示され、確認を求めるメッセージが表示されるためです。ユーザーはインポート操作を停止できます。ただし、これを実行できるのは、\fB\-noprompt\fRオプションを指定せずに\fB\-importcert\fRコマンドを呼び出す場合のみです。\fB\-noprompt\fRオプションが指定されている場合、ユーザーとの対話は行われません。 .SS "パスワード警告" .PP -キーストアに対する操作を行うほとんどのコマンドでは、ストアのパスワードが必要です。また、一部のコマンドでは、非公開/秘密鍵のパスワードが必要になることがあります。パスワードはコマンド行で指定できます(\fB\-storepass\fRオプションと\fB\-keypass\fRオプションを使用)。ただし、テストを目的とする場合、または安全であることがわかっているシステムで実行する場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。必要なパスワードのオプションをコマンド行で指定しなかった場合は、パスワードの入力を求められます。 +キーストアに対する操作を行うほとんどのコマンドでは、ストアのパスワードが必要です。また、一部のコマンドでは、非公開/秘密鍵のパスワードが必要になることがあります。パスワードはコマンド行で指定できます(\fB\-storepass\fRオプションと\fB\-keypass\fRオプションを使用)。ただし、テスト目的の場合、またはセキュアなシステムを使用している場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。必要なパスワードのオプションをコマンド行で指定しなかった場合は、パスワードの入力を求められます。 .SS "証明書の準拠に関する警告" .PP インターネット標準RFC 5280では、X\&.509証明書の準拠に関するプロファイルが定義されており、証明書のフィールドおよびエクステンションに有効な値および値の組合せが記載されています。標準については、 diff --git a/src/linux/doc/man/ja/native2ascii.1 b/src/linux/doc/man/ja/native2ascii.1 index 9fcb7d6801732490cf9699961a50d00f6ecad2d3..895507fa836d6de23b466815326a078f5174fb59 100644 --- a/src/linux/doc/man/ja/native2ascii.1 +++ b/src/linux/doc/man/ja/native2ascii.1 @@ -27,7 +27,8 @@ .\" SectDesc: 国際化ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "native2ascii" "1" "2013年11月21日" "JDK 8" "国際化ツール" diff --git a/src/linux/doc/man/ja/orbd.1 b/src/linux/doc/man/ja/orbd.1 index b91dfd9fb3d830bc6cb1b15d59343dcabb80eb45..6c07bd81a8b4ba3ca38501ebea85d7421b88d619 100644 --- a/src/linux/doc/man/ja/orbd.1 +++ b/src/linux/doc/man/ja/orbd.1 @@ -27,7 +27,8 @@ .\" SectDesc: Java IDLおよびRMI-IIOPツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "orbd" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール" @@ -117,7 +118,7 @@ ORBD .PP \-serverPollingTime \fImilliseconds\fR .RS 4 -\fBservertool\fRを使用して登録された永続サーバーのヘルス状態をORBDがチェックする間隔を指定します。デフォルト値は1000ミリ秒です。\fBmilliseconds\fRに指定する値は、有効な正の整数にする必要があります。 +\fBservertool\fRを使用して登録された永続サーバーが正常に動作していることをORBDが確認する間隔を指定します。デフォルト値は1000ミリ秒です。\fBmilliseconds\fRに指定する値は、有効な正の整数にする必要があります。 .RE .PP \-serverStartupDelay milliseconds diff --git a/src/linux/doc/man/ja/pack200.1 b/src/linux/doc/man/ja/pack200.1 index a1fea13058fabc25b6d1c4926535b8ffd86cd037..1ecbb968c10ccb944714b48a821e929fe20fd24f 100644 --- a/src/linux/doc/man/ja/pack200.1 +++ b/src/linux/doc/man/ja/pack200.1 @@ -27,7 +27,8 @@ .\" SectDesc: Javaデプロイメント・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "pack200" "1" "2013年11月21日" "JDK 8" "Javaデプロイメント・ツール" @@ -160,7 +161,7 @@ JAR \-\-segment\-limit=\fIvalue\fR .RS 4 この値は、各アーカイブ・セグメントの予想ターゲット・サイズ\fIN\fR -(バイト単位)です。単一の入力ファイルの必要サイズが\fIN\fRバイトを超えると、独立したセグメントが割り当てられます。特殊なケースとして、値が\fB\-1\fRの場合は、すべての入力ファイルを含む大きな単一のセグメントが生成され、値が0の場合は、クラスごとにセグメントが1つずつ生成されます。アーカイブ・セグメントが大きくなると、断片化が少なくなり圧縮率が高くなりますが、その処理には多くのメモリーが必要です。 +(バイト単位)です。単一の入力ファイルの必要サイズが\fIN\fRバイトを超えると、固有のアーカイブ・セグメントが提供されます。特殊なケースとして、値が\fB\-1\fRの場合は、すべての入力ファイルを含む大きな単一のセグメントが生成され、値が0の場合は、クラスごとにセグメントが1つずつ生成されます。アーカイブ・セグメントが大きくなると、断片化が少なくなり圧縮率が高くなりますが、その処理には多くのメモリーが必要です。 .sp 各セグメントのサイズは、セグメントに変換されるそれぞれの入力ファイルのサイズのほか、その名前と他の送信されるプロパティのサイズを計算して推測されます。 .sp diff --git a/src/linux/doc/man/ja/policytool.1 b/src/linux/doc/man/ja/policytool.1 index 37621365214f1d7fb1c3e029b0297da4b5af508e..ac7ef1842c43151fb476534b473daaf5fdeca41c 100644 --- a/src/linux/doc/man/ja/policytool.1 +++ b/src/linux/doc/man/ja/policytool.1 @@ -23,14 +23,15 @@ .\" .\" Title: policytool .\" Language: Japanese -.\" Date: 2013年11月21日 +.\" Date: 2015年3月3日 .\" SectDesc: セキュリティ・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 -.TH "policytool" "1" "2013年11月21日" "JDK 8" "セキュリティ・ツール" +.TH "policytool" "1" "2015年3月3日" "JDK 8" "セキュリティ・ツール" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -95,7 +96,7 @@ policytool \- .RS 4 .\} .nf -\fBpolicytool\-file mypolicyfile\fR +\fBpolicytool \-file \fR\fB\fImypolicyfile\fR\fR .fi .if n \{\ diff --git a/src/linux/doc/man/ja/rmic.1 b/src/linux/doc/man/ja/rmic.1 index 1953ea940db342093bdd5af794c5dde6bedaecb1..a96af2a159cd926a88061381f3699b73a0af440e 100644 --- a/src/linux/doc/man/ja/rmic.1 +++ b/src/linux/doc/man/ja/rmic.1 @@ -27,7 +27,8 @@ .\" SectDesc: Remote Method Invocation (RMI)ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "rmic" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)" @@ -110,8 +111,8 @@ Java Remote Method Protocol (JRMP) .PP \-classpath path .RS 4 -\fBrmic\fRコマンドがクラスを探すためのパスを指定します。このオプションは、デフォルトや\fBCLASSPATH\fR環境変数設定をオーバーライドします。ディレクトリはコロンで分割します。パスの一般的な形式は\fB\&.;<your_path>\fRです。例: -\fB\&.;/usr/local/java/classes\fR +\fBrmic\fRコマンドがクラスを探すためのパスを指定します。このオプションは、デフォルトや\fBCLASSPATH\fR環境変数設定をオーバーライドします。ディレクトリはコロンで分割します。パスの一般的な形式は\fB\&.:<your_path>\fRです。例: +\fB\&.:/usr/local/java/classes\fR .RE .PP \-d \fIdirectory\fR @@ -350,7 +351,7 @@ java(1) .sp -1 .IP \(bu 2.3 .\} -Setting the Class Path +クラス・パスの設定 .RE .br 'pl 8.5i diff --git a/src/linux/doc/man/ja/rmid.1 b/src/linux/doc/man/ja/rmid.1 index 1d18172f8ebb86de30409b83170145e87fac5801..2a7b00e15aefcfee7ae2bd6b2068a46221f38b66 100644 --- a/src/linux/doc/man/ja/rmid.1 +++ b/src/linux/doc/man/ja/rmid.1 @@ -27,7 +27,8 @@ .\" SectDesc: Remote Method Invocation (RMI)ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "rmid" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)" @@ -103,9 +104,7 @@ rmid \- .\} .SH "必要に応じてRMIDを開始" .PP -\fBrmid\fRをコマンド行から開始するには、\fBinetd\fR -(Oracle Solarisの場合)、または\fBxinetd\fR -(Linuxの場合)を構成して\fBrmid\fRを必要に応じて開始する方法もあります。 +\fBrmid\fRをコマンド行から開始するには、\fBinetd\fR(Oracle Solarisの場合)、または\fBxinetd\fR(Linuxの場合)を構成して\fBrmid\fRを必要に応じて開始する方法もあります。 .PP RMIDを開始すると、\fBSystem\&.inheritedChannel\fRメソッドを呼び出して、継承されたチャンネル(\fBinetd\fR/\fBxinetd\fRから継承)を取得しようとします。継承されたチャンネルがnullであるか、\fBjava\&.nio\&.channels\&.ServerSocketChannel\fRのインスタンスでなかった場合、RMIDはそのチャンネルは\fBinetd\fR/\fBxinetd\fRによって起動されたものではないと判断し、前述のように起動します。 .PP @@ -368,7 +367,7 @@ java(1) .sp -1 .IP \(bu 2.3 .\} -Setting the Class Path +クラス・パスの設定 .RE .br 'pl 8.5i diff --git a/src/linux/doc/man/ja/rmiregistry.1 b/src/linux/doc/man/ja/rmiregistry.1 index b34b55d6b08ae41d7da4c67db35f7c51d077c8fd..f6647b83c9c7c416b53e921521df2bce6c113aa6 100644 --- a/src/linux/doc/man/ja/rmiregistry.1 +++ b/src/linux/doc/man/ja/rmiregistry.1 @@ -27,7 +27,8 @@ .\" SectDesc: Remote Method Invocation (RMI)ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "rmiregistry" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)" diff --git a/src/linux/doc/man/ja/schemagen.1 b/src/linux/doc/man/ja/schemagen.1 index d9fd8de4d05e71a58528b113e276bce6f4890833..216cd998a003aaea185b0f18cd95b788faa28995 100644 --- a/src/linux/doc/man/ja/schemagen.1 +++ b/src/linux/doc/man/ja/schemagen.1 @@ -27,7 +27,8 @@ .\" SectDesc: Java Webサービス・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "schemagen" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール" diff --git a/src/linux/doc/man/ja/serialver.1 b/src/linux/doc/man/ja/serialver.1 index 5a8e4d5b6c4a8a0c3b193bb4bad1a2de5336f6b5..e9a762ca269267ecdd8ba09a68502cdd2a62f66c 100644 --- a/src/linux/doc/man/ja/serialver.1 +++ b/src/linux/doc/man/ja/serialver.1 @@ -27,7 +27,8 @@ .\" SectDesc: Remote Method Invocation (RMI)ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "serialver" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)" diff --git a/src/linux/doc/man/ja/servertool.1 b/src/linux/doc/man/ja/servertool.1 index c5aa84738c73ad43ffebe755f3c93a7cc4b6158c..2d9cd08ca127cab2402a6a428594c480919c658a 100644 --- a/src/linux/doc/man/ja/servertool.1 +++ b/src/linux/doc/man/ja/servertool.1 @@ -27,7 +27,8 @@ .\" SectDesc: Java IDLおよびRMI-IIOPツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "servertool" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール" diff --git a/src/linux/doc/man/ja/tnameserv.1 b/src/linux/doc/man/ja/tnameserv.1 index b154f01bd90b2158563ca799b9cb8cb2178e4efe..7544e4e3901f470b0caf3d70343e3747b89cba0c 100644 --- a/src/linux/doc/man/ja/tnameserv.1 +++ b/src/linux/doc/man/ja/tnameserv.1 @@ -27,7 +27,8 @@ .\" SectDesc: Java IDLおよびRMI-IIOPツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "tnameserv" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール" @@ -189,7 +190,7 @@ Java Virtual Machine .SH "例" .SS "ネームスペースへのオブジェクトの追加" .PP -次の例では、ネームスペースに名前を追加する方法を示します。このサンプル・プログラムは、このままの状態で完全に動作する一時ネーム・サービス・クライアントで、次のような単純なツリーを作成するものです。 +次の例では、ネームスペースに名前を追加する方法を示します。このサンプル・プログラムは、自己完結型の一時ネーム・サービス・クライアントで、次のような単純なツリーを作成するものです。 .sp .if n \{\ .RS 4 diff --git a/src/linux/doc/man/ja/unpack200.1 b/src/linux/doc/man/ja/unpack200.1 index d4372bc7b71127d1597628c3351c2cbfe9f18ada..9f94fa6990dd567653e4b1344b66b127d4dab447 100644 --- a/src/linux/doc/man/ja/unpack200.1 +++ b/src/linux/doc/man/ja/unpack200.1 @@ -27,7 +27,8 @@ .\" SectDesc: Javaデプロイメント・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "unpack200" "1" "2013年11月21日" "JDK 8" "Javaデプロイメント・ツール" diff --git a/src/linux/doc/man/ja/wsgen.1 b/src/linux/doc/man/ja/wsgen.1 index f60bb821c2d1d3d7ac33617b6f60c45763691873..b0ca596264de9a4eeab2a089c55844c3a73877b0 100644 --- a/src/linux/doc/man/ja/wsgen.1 +++ b/src/linux/doc/man/ja/wsgen.1 @@ -27,7 +27,8 @@ .\" SectDesc: Java Webサービス・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "wsgen" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール" diff --git a/src/linux/doc/man/ja/wsimport.1 b/src/linux/doc/man/ja/wsimport.1 index 397e2923bab4707bfdc604cf7391314f1c659b82..b23aed6f9c8d7c238e95568e9275cf37dbf05331 100644 --- a/src/linux/doc/man/ja/wsimport.1 +++ b/src/linux/doc/man/ja/wsimport.1 @@ -27,7 +27,8 @@ .\" SectDesc: Java Webサービス・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "wsimport" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール" diff --git a/src/linux/doc/man/ja/xjc.1 b/src/linux/doc/man/ja/xjc.1 index 720547c41e664eec917fe7734846c9f4b9bf4856..1a02453082c9c0b49a533a85e3febb6ff95bf6f8 100644 --- a/src/linux/doc/man/ja/xjc.1 +++ b/src/linux/doc/man/ja/xjc.1 @@ -27,7 +27,8 @@ .\" SectDesc: Java Webサービス・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "xjc" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール" @@ -129,7 +130,7 @@ Using the XJC with Ant .PP \-p \fIpkg\fR .RS 4 -このコマンド行オプションでターゲット・パッケージを指定した場合、パッケージ名に対するすべてのバインディング・カスタマイズや、仕様で規定されているデフォルトのパッケージ名アルゴリズムよりも優先されます。 +このコマンド行オプションでターゲット・パッケージを指定した場合、その指定内容は、パッケージ名に対するすべてのバインディング・カスタマイズや、仕様で規定されているデフォルトのパッケージ名アルゴリズムよりも優先されます。 .RE .PP \-httpproxy \fIproxy\fR diff --git a/src/macosx/classes/com/apple/laf/AquaFileChooserUI.java b/src/macosx/classes/com/apple/laf/AquaFileChooserUI.java index cfa3b08d3be18edf9fa1eb52c60145c662838666..d847bd7ca95e9412de171ffaf808396f00ac08a0 100644 --- a/src/macosx/classes/com/apple/laf/AquaFileChooserUI.java +++ b/src/macosx/classes/com/apple/laf/AquaFileChooserUI.java @@ -1280,12 +1280,12 @@ public class AquaFileChooserUI extends FileChooserUI { filters = (FileFilter[]) e.getNewValue(); fireContentsChanged(this, -1, -1); } else if (prop == JFileChooser.FILE_FILTER_CHANGED_PROPERTY) { - fireContentsChanged(this, -1, -1); + setSelectedItem(e.getNewValue()); } } public void setSelectedItem(Object filter) { - if(filter != null) { + if (filter != null && !containsFileFilter(filter)) { getFileChooser().setFileFilter((FileFilter) filter); fireContentsChanged(this, -1, -1); } @@ -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. */ @@ -1342,7 +1346,10 @@ public class AquaFileChooserUI extends FileChooserUI { } public void actionPerformed(final ActionEvent e) { - getFileChooser().setFileFilter((FileFilter)filterComboBox.getSelectedItem()); + Object selectedFilter = filterComboBox.getSelectedItem(); + if (!containsFileFilter(selectedFilter)) { + getFileChooser().setFileFilter((FileFilter) selectedFilter); + } } } diff --git a/src/macosx/native/sun/awt/AWTWindow.m b/src/macosx/native/sun/awt/AWTWindow.m index 4c13c08dbd55452ab95a03505d7274828a654e32..324f9d59a7f227df8ce8d31fe76a5347aef6b77e 100644 --- a/src/macosx/native/sun/awt/AWTWindow.m +++ b/src/macosx/native/sun/awt/AWTWindow.m @@ -104,6 +104,67 @@ static AWTWindow* lastKeyWindow = nil; @implementation AWTWindow_Normal 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 @implementation AWTWindow_Panel AWT_NS_WINDOW_IMPLEMENTATION @@ -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 - (void) _deliverMoveResizeEvent { diff --git a/src/share/classes/com/sun/java/swing/plaf/gtk/GTKFileChooserUI.java b/src/share/classes/com/sun/java/swing/plaf/gtk/GTKFileChooserUI.java index fb1afc8b70dacbbca5fa2e0b87f572a76f8a52cf..530cecea29f699af62a943973a69dcc55199881b 100644 --- a/src/share/classes/com/sun/java/swing/plaf/gtk/GTKFileChooserUI.java +++ b/src/share/classes/com/sun/java/swing/plaf/gtk/GTKFileChooserUI.java @@ -1285,7 +1285,7 @@ class GTKFileChooserUI extends SynthFileChooserUI { /** * Render different filters */ - public class FilterComboBoxRenderer extends DefaultListCellRenderer implements UIResource { + public class FilterComboBoxRenderer extends DefaultListCellRenderer { public String getName() { // As SynthComboBoxRenderer's are asked for a size BEFORE they // are parented getName is overriden to force the name to be diff --git a/src/share/classes/com/sun/jndi/ldap/Connection.java b/src/share/classes/com/sun/jndi/ldap/Connection.java index c5a957ce6d76a375f2b482353fe5f362d3d2f84d..64b625dac2131f430e5c526f9588dd628834a444 100644 --- a/src/share/classes/com/sun/jndi/ldap/Connection.java +++ b/src/share/classes/com/sun/jndi/ldap/Connection.java @@ -111,7 +111,6 @@ public final class Connection implements Runnable { private static final boolean debug = false; 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 @@ -460,10 +459,13 @@ public final class Connection implements Runnable { // will be woken up before readTimeout only if reply is // available ldr.wait(readTimeout); + waited = true; } 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 { break; } diff --git a/src/share/classes/java/awt/SplashScreen.java b/src/share/classes/java/awt/SplashScreen.java index 9ec56251a359001e115942305ccfacdfa5e650cf..05a38e7e113d3d57943365e87c34c95ea3f71d4b 100644 --- a/src/share/classes/java/awt/SplashScreen.java +++ b/src/share/classes/java/awt/SplashScreen.java @@ -293,6 +293,7 @@ public final class SplashScreen { */ public Graphics2D createGraphics() throws IllegalStateException { synchronized (SplashScreen.class) { + checkVisible(); if (image==null) { // get unscaled splash image size Dimension dim = _getBounds(splashPtr).getSize(); @@ -419,4 +420,4 @@ public final class SplashScreen { private native static boolean _setImageData(long SplashPtr, byte[] data); private native static float _getScaleFactor(long SplashPtr); -}; +} diff --git a/src/share/classes/java/awt/event/KeyListener.java b/src/share/classes/java/awt/event/KeyListener.java index 896b5fc9b96a666f33330787b344e22df636c79e..2a4f3dd4f8ce7467f2089ceed9321b1acb3d406c 100644 --- a/src/share/classes/java/awt/event/KeyListener.java +++ b/src/share/classes/java/awt/event/KeyListener.java @@ -1,5 +1,5 @@ /* - * 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. * * This code is free software; you can redistribute it and/or modify it @@ -44,7 +44,7 @@ import java.util.EventListener; * * @see KeyAdapter * @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 */ diff --git a/src/share/classes/java/lang/Class.java b/src/share/classes/java/lang/Class.java index 43c8c0e8ec73bab1159ea0e49b8cf4ab6cca0a8c..4c35cbce1109403c1e45a635c871f42281b53aed 100644 --- a/src/share/classes/java/lang/Class.java +++ b/src/share/classes/java/lang/Class.java @@ -689,6 +689,8 @@ public final class Class<T> implements java.io.Serializable, ClassLoader getClassLoader0() { return classLoader; } // Initialized in JVM not by private constructor + // This field is filtered from reflection access, i.e. getDeclaredField + // will throw NoSuchFieldException private final ClassLoader classLoader; /** diff --git a/src/share/classes/java/lang/System.java b/src/share/classes/java/lang/System.java index 69d1d0fe1ef0866381a7d32fc1d8dbb5036829c1..b2747fa7a41bc60266d3811b04fe371e97baa35c 100644 --- a/src/share/classes/java/lang/System.java +++ b/src/share/classes/java/lang/System.java @@ -584,7 +584,10 @@ public final class System { * <tr><td><code>java.compiler</code></td> * <td>Name of JIT compiler to use</td></tr> * <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> * <td>Operating system name</td></tr> * <tr><td><code>os.arch</code></td> diff --git a/src/share/classes/java/lang/invoke/LambdaForm.java b/src/share/classes/java/lang/invoke/LambdaForm.java index e1791719c0d799cbf26b92176692d6b18c1d813b..2129f8618bdb2273ab73a39380f6e57a5a5d58f4 100644 --- a/src/share/classes/java/lang/invoke/LambdaForm.java +++ b/src/share/classes/java/lang/invoke/LambdaForm.java @@ -125,7 +125,7 @@ class LambdaForm { MemberName vmentry; // low-level behavior, or null if not yet prepared private boolean isCompiled; - Object transformCache; // managed by LambdaFormEditor + volatile Object transformCache; // managed by LambdaFormEditor public static final int VOID_RESULT = -1, LAST_RESULT = -2; diff --git a/src/share/classes/java/lang/invoke/LambdaFormBuffer.java b/src/share/classes/java/lang/invoke/LambdaFormBuffer.java index 872a2a5992162829a13d3556b12aa2778c844357..cdc88be3250b6ea4195a78077a20b8e5b1d09e3d 100644 --- a/src/share/classes/java/lang/invoke/LambdaFormBuffer.java +++ b/src/share/classes/java/lang/invoke/LambdaFormBuffer.java @@ -46,19 +46,16 @@ final class LambdaFormBuffer { private static final int F_TRANS = 0x10, F_OWNED = 0x03; 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; 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() { assert(!inTrans()); // need endEdit call to tidy things up return new LambdaForm(debugName, arity, nameArray(), resultIndex()); diff --git a/src/share/classes/java/lang/invoke/LambdaFormEditor.java b/src/share/classes/java/lang/invoke/LambdaFormEditor.java index 1c29d73b4ccb894e59f240840b20be810d591a19..1c23e94995ac7c5818741fe40c6a9cfa27bfa4de 100644 --- a/src/share/classes/java/lang/invoke/LambdaFormEditor.java +++ b/src/share/classes/java/lang/invoke/LambdaFormEditor.java @@ -25,6 +25,7 @@ package java.lang.invoke; +import java.lang.ref.SoftReference; import java.util.Arrays; import static java.lang.invoke.LambdaForm.*; import static java.lang.invoke.LambdaForm.BasicType.*; @@ -58,10 +59,9 @@ class LambdaFormEditor { * 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. */ - private static final class Transform { + private static final class Transform extends SoftReference<LambdaForm> { final long packedBytes; final byte[] fullBytes; - final LambdaForm result; // result of transform, or null, if there is none available private enum Kind { NO_KIND, // necessary because ordinal must be greater than zero @@ -140,9 +140,9 @@ class LambdaFormEditor { Kind kind() { return Kind.values()[byteAt(0)]; } private Transform(long packedBytes, byte[] fullBytes, LambdaForm result) { + super(result); this.packedBytes = packedBytes; this.fullBytes = fullBytes; - this.result = result; } private Transform(long packedBytes) { this(packedBytes, null, null); @@ -243,6 +243,7 @@ class LambdaFormEditor { buf.append("unpacked"); buf.append(Arrays.toString(fullBytes)); } + LambdaForm result = get(); if (result != null) { buf.append(" result="); buf.append(result); @@ -253,7 +254,7 @@ class LambdaFormEditor { /** Find a previously cached transform equivalent to the given one, and return its result. */ private LambdaForm getInCache(Transform key) { - assert(key.result == null); + assert(key.get() == null); // The transformCache is one of null, Transform, Transform[], or ConcurrentHashMap. Object c = lambdaForm.transformCache; Transform k = null; @@ -276,7 +277,7 @@ class LambdaFormEditor { } } 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. */ @@ -293,7 +294,17 @@ class LambdaFormEditor { @SuppressWarnings("unchecked") ConcurrentHashMap<Transform,Transform> m = (ConcurrentHashMap<Transform,Transform>) c; 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); synchronized (lambdaForm) { @@ -308,17 +319,27 @@ class LambdaFormEditor { if (c instanceof Transform) { Transform k = (Transform)c; 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 ta = new Transform[MIN_CACHE_ARRAY_SIZE]; ta[0] = k; - lambdaForm.transformCache = c = ta; + lambdaForm.transformCache = ta; } else { // it is already expanded ta = (Transform[])c; } int len = ta.length; + int stale = -1; int i; for (i = 0; i < len; i++) { Transform k = ta[i]; @@ -326,10 +347,18 @@ class LambdaFormEditor { break; } 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 } else if (len < MAX_CACHE_ARRAY_SIZE) { len = Math.min(len * 2, MAX_CACHE_ARRAY_SIZE); @@ -344,7 +373,8 @@ class LambdaFormEditor { // The second iteration will update for this query, concurrently. continue; } - ta[i] = key; + int idx = (stale >= 0) ? stale : i; + ta[idx] = key; return form; } } diff --git a/src/share/classes/java/lang/invoke/MethodHandles.java b/src/share/classes/java/lang/invoke/MethodHandles.java index 3c60a8c3c9a0d6235872d5a4712d17bea95c055f..85118904818e28d50d6ed615b3ca4987697457a4 100644 --- a/src/share/classes/java/lang/invoke/MethodHandles.java +++ b/src/share/classes/java/lang/invoke/MethodHandles.java @@ -2029,7 +2029,7 @@ return invoker; MethodType oldType = target.type(); if (oldType == newType) return target; if (oldType.explicitCastEquivalentToAsType(newType)) { - return target.asType(newType); + return target.asFixedArity().asType(newType); } return MethodHandleImpl.makePairwiseConvert(target, newType, false); } diff --git a/src/share/classes/java/lang/invoke/MethodTypeForm.java b/src/share/classes/java/lang/invoke/MethodTypeForm.java index 6733e29ef9379c4367f64a8ba9d133a7ea87ebb2..bcf16dba9db8b782057aa232b968ed97db53376f 100644 --- a/src/share/classes/java/lang/invoke/MethodTypeForm.java +++ b/src/share/classes/java/lang/invoke/MethodTypeForm.java @@ -26,9 +26,8 @@ package java.lang.invoke; import sun.invoke.util.Wrapper; +import java.lang.ref.SoftReference; 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 @@ -51,7 +50,7 @@ final class MethodTypeForm { final MethodType basicType; // the canonical erasure, with primitives simplified // Cached adapter information: - @Stable final MethodHandle[] methodHandles; + @Stable final SoftReference<MethodHandle>[] methodHandles; // Indexes into methodHandles: static final int MH_BASIC_INV = 0, // cached instance of MH.invokeBasic @@ -60,7 +59,7 @@ final class MethodTypeForm { MH_LIMIT = 3; // Cached lambda form information, for basic types only: - final @Stable LambdaForm[] lambdaForms; + final @Stable SoftReference<LambdaForm>[] lambdaForms; // Indexes into lambdaForms: static final int LF_INVVIRTUAL = 0, // DMH invokeVirtual @@ -108,26 +107,40 @@ final class MethodTypeForm { public MethodHandle cachedMethodHandle(int which) { assert(assertIsBasicType()); - return methodHandles[which]; + SoftReference<MethodHandle> entry = methodHandles[which]; + return (entry != null) ? entry.get() : null; } synchronized public MethodHandle setCachedMethodHandle(int which, MethodHandle mh) { // Simulate a CAS, to avoid racy duplication of results. - MethodHandle prev = methodHandles[which]; - if (prev != null) return prev; - return methodHandles[which] = mh; + SoftReference<MethodHandle> entry = methodHandles[which]; + if (entry != null) { + MethodHandle prev = entry.get(); + if (prev != null) { + return prev; + } + } + methodHandles[which] = new SoftReference<>(mh); + return mh; } public LambdaForm cachedLambdaForm(int which) { assert(assertIsBasicType()); - return lambdaForms[which]; + SoftReference<LambdaForm> entry = lambdaForms[which]; + return (entry != null) ? entry.get() : null; } synchronized public LambdaForm setCachedLambdaForm(int which, LambdaForm form) { // Simulate a CAS, to avoid racy duplication of results. - LambdaForm prev = lambdaForms[which]; - if (prev != null) return prev; - return lambdaForms[which] = form; + SoftReference<LambdaForm> entry = lambdaForms[which]; + if (entry != null) { + LambdaForm prev = entry.get(); + if (prev != null) { + return prev; + } + } + lambdaForms[which] = new SoftReference<>(form); + return form; } /** @@ -135,6 +148,7 @@ final class MethodTypeForm { * This MTF will stand for that type and all un-erased variations. * Eagerly compute some basic properties of the type, common to all variations. */ + @SuppressWarnings({"rawtypes", "unchecked"}) protected MethodTypeForm(MethodType erasedType) { this.erasedType = erasedType; @@ -234,8 +248,8 @@ final class MethodTypeForm { // Initialize caches, but only for basic types assert(basicType == erasedType); - this.lambdaForms = new LambdaForm[LF_LIMIT]; - this.methodHandles = new MethodHandle[MH_LIMIT]; + this.lambdaForms = new SoftReference[LF_LIMIT]; + this.methodHandles = new SoftReference[MH_LIMIT]; } private static long pack(int a, int b, int c, int d) { @@ -409,5 +423,4 @@ final class MethodTypeForm { public String toString() { return "Form"+erasedType; } - } diff --git a/src/share/classes/java/lang/reflect/AccessibleObject.java b/src/share/classes/java/lang/reflect/AccessibleObject.java index 0bf5e0eea417d12b264bb493258acecb535917b0..45e051c45478a6f09e0bddfa47a980b7889f2609 100644 --- a/src/share/classes/java/lang/reflect/AccessibleObject.java +++ b/src/share/classes/java/lang/reflect/AccessibleObject.java @@ -140,13 +140,6 @@ public class AccessibleObject implements AnnotatedElement { throw new SecurityException("Cannot make a java.lang.Class" + " 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; } diff --git a/src/share/classes/java/util/SplittableRandom.java b/src/share/classes/java/util/SplittableRandom.java index 00de113a6f8195ddb3c0c12bda80ebe466ee0a02..285655d40c9d3cd738ab463b21c83690e7d6dc0a 100644 --- a/src/share/classes/java/util/SplittableRandom.java +++ b/src/share/classes/java/util/SplittableRandom.java @@ -25,7 +25,6 @@ package java.util; -import java.net.NetworkInterface; import java.util.concurrent.atomic.AtomicLong; import java.util.function.IntConsumer; import java.util.function.LongConsumer; @@ -140,11 +139,10 @@ public final class SplittableRandom { * other cases, this split must be performed in a thread-safe * manner, so we use an AtomicLong to represent the seed rather * than use an explicit SplittableRandom. To bootstrap the - * defaultGen, we start off using a seed based on current time and - * network interface address unless the java.util.secureRandomSeed - * property is set. This serves as a slimmed-down (and insecure) - * variant of SecureRandom that also avoids stalls that may occur - * when using /dev/random. + * defaultGen, we start off using a seed based on current time + * unless the java.util.secureRandomSeed property is set. This + * serves as a slimmed-down (and insecure) variant of SecureRandom + * that also avoids stalls that may occur when using /dev/random. * * It is a relatively simple matter to apply the basic design here * to use 128 bit seeds. However, emulating 128bit arithmetic and @@ -237,34 +235,7 @@ public final class SplittableRandom { s = (s << 8) | ((long)(seedBytes[i]) & 0xffL); return s; } - long h = 0L; - 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()) ^ + return (mix64(System.currentTimeMillis()) ^ mix64(System.nanoTime())); } diff --git a/src/share/classes/java/util/concurrent/ThreadLocalRandom.java b/src/share/classes/java/util/concurrent/ThreadLocalRandom.java index 2606bed44bef0745f5ef6db67e78020a924103b4..95cc6549b9f88fddb4c90396217fbd3e7f6379a8 100644 --- a/src/share/classes/java/util/concurrent/ThreadLocalRandom.java +++ b/src/share/classes/java/util/concurrent/ThreadLocalRandom.java @@ -36,8 +36,6 @@ package java.util.concurrent; import java.io.ObjectStreamField; -import java.net.NetworkInterface; -import java.util.Enumeration; import java.util.Random; import java.util.Spliterator; import java.util.concurrent.atomic.AtomicInteger; @@ -147,34 +145,7 @@ public class ThreadLocalRandom extends Random { s = (s << 8) | ((long)(seedBytes[i]) & 0xffL); return s; } - long h = 0L; - 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()) ^ + return (mix64(System.currentTimeMillis()) ^ mix64(System.nanoTime())); } diff --git a/src/share/classes/java/util/jar/Attributes.java b/src/share/classes/java/util/jar/Attributes.java index 026b2a88eb09007e328864251b0be6b212b6837b..795b80900dda4071915578bd3fe74ec88aad3dcd 100644 --- a/src/share/classes/java/util/jar/Attributes.java +++ b/src/share/classes/java/util/jar/Attributes.java @@ -550,8 +550,8 @@ public class Attributes implements Map<Object,Object>, Cloneable { * <code>Name</code> object for <code>Class-Path</code> * manifest attribute. Bundled extensions can use this attribute * to find other JAR files containing needed classes. - * @see <a href="../../../../technotes/guides/extensions/spec.html#bundled"> - * Extensions Specification</a> + * @see <a href="../../../../technotes/guides/jar/jar.html#classpath"> + * JAR file specification</a> */ public static final Name CLASS_PATH = new Name("Class-Path"); @@ -567,8 +567,8 @@ public class Attributes implements Map<Object,Object>, Cloneable { /** * <code>Name</code> object for <code>Sealed</code> manifest attribute * used for sealing. - * @see <a href="../../../../technotes/guides/extensions/spec.html#sealing"> - * Extension Sealing</a> + * @see <a href="../../../../technotes/guides/jar/jar.html#sealing"> + * Package Sealing</a> */ public static final Name SEALED = new Name("Sealed"); @@ -591,9 +591,12 @@ public class Attributes implements Map<Object,Object>, Cloneable { /** * <code>Name</code> object for <code>Extension-Name</code> manifest attribute * 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"> * Installed extension dependency</a> */ + @Deprecated public static final Name EXTENSION_INSTALLATION = new Name("Extension-Installation"); /** @@ -623,17 +626,23 @@ public class Attributes implements Map<Object,Object>, Cloneable { /** * <code>Name</code> object for <code>Implementation-Vendor-Id</code> * manifest attribute used for package versioning. - * @see <a href="../../../../technotes/guides/versioning/spec/versioning2.html#wp90779"> - * Java Product Versioning Specification</a> + * @deprecated Extension mechanism will be removed in a future release. + * 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"); /** * <code>Name</code> object for <code>Implementation-URL</code> * manifest attribute used for package versioning. - * @see <a href="../../../../technotes/guides/versioning/spec/versioning2.html#wp90779"> - * Java Product Versioning Specification</a> + * @deprecated Extension mechanism will be removed in a future release. + * 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"); /** diff --git a/src/share/classes/java/util/logging/LogManager.java b/src/share/classes/java/util/logging/LogManager.java index 6c12f49f8c9a2548b74542b9d6727467874227b2..1681c8bd35e02d5a8c9a541c6d090638ba59ce57 100644 --- a/src/share/classes/java/util/logging/LogManager.java +++ b/src/share/classes/java/util/logging/LogManager.java @@ -502,11 +502,11 @@ public class LogManager { JavaAWTAccess javaAwtAccess = SharedSecrets.getJavaAWTAccess(); if (sm != null && javaAwtAccess != null) { // for each applet, it has its own LoggerContext isolated from others - synchronized (javaAwtAccess) { - // find the AppContext of the applet code - // will be null if we are in the main app context. - final Object ecx = javaAwtAccess.getAppletContext(); - if (ecx != null) { + final Object ecx = javaAwtAccess.getAppletContext(); + if (ecx != null) { + synchronized (javaAwtAccess) { + // find the AppContext of the applet code + // will be null if we are in the main app context. if (contextsMap == null) { contextsMap = new WeakHashMap<>(); } diff --git a/src/share/classes/javax/swing/JComboBox.java b/src/share/classes/javax/swing/JComboBox.java index 6e71c43cb8cef717f6450c93fa353a3ac8fffa5e..0862f437a50a3ed8684e64eabcefa23f48c622bd 100644 --- a/src/share/classes/javax/swing/JComboBox.java +++ b/src/share/classes/javax/swing/JComboBox.java @@ -1308,8 +1308,8 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible { */ public void actionPerformed(ActionEvent e) { ComboBoxEditor editor = getEditor(); - if ((editor != null) && (e != null) - && (editor.getEditorComponent() == e.getSource())) { + if ((editor != null) && (e != null) && (editor == e.getSource() + || editor.getEditorComponent() == e.getSource())) { setPopupVisible(false); getModel().setSelectedItem(editor.getItem()); String oldCommand = getActionCommand(); diff --git a/src/share/classes/sun/awt/datatransfer/DataTransferer.java b/src/share/classes/sun/awt/datatransfer/DataTransferer.java index e1677b9c84c5f000cc571e7e642d3cc23610c98c..79c2792800fb7d250c0b1dcd8e0da661258d63fc 100644 --- a/src/share/classes/sun/awt/datatransfer/DataTransferer.java +++ b/src/share/classes/sun/awt/datatransfer/DataTransferer.java @@ -274,7 +274,7 @@ public abstract class DataTransferer { * instead, null will be returned. */ public static synchronized DataTransferer getInstance() { - return ((SunToolkit) Toolkit.getDefaultToolkit()).getDataTransferer(); + return ((ComponentFactory) Toolkit.getDefaultToolkit()).getDataTransferer(); } /** diff --git a/src/share/classes/sun/awt/image/MultiResolutionToolkitImage.java b/src/share/classes/sun/awt/image/MultiResolutionToolkitImage.java index bde59ab6275a8128135e2e3cfcdec78975ba1c67..46ef09fdbe26cc64e5e130f3f4eb7ae9bb7c9f14 100644 --- a/src/share/classes/sun/awt/image/MultiResolutionToolkitImage.java +++ b/src/share/classes/sun/awt/image/MultiResolutionToolkitImage.java @@ -80,7 +80,7 @@ public class MultiResolutionToolkitImage extends ToolkitImage implements MultiRe } synchronized (ObserverCache.INSTANCE) { - ImageObserver o = (ImageObserver) ObserverCache.INSTANCE.get(image); + ImageObserver o = (ImageObserver) ObserverCache.INSTANCE.get(observer); if (o == null) { @@ -109,7 +109,7 @@ public class MultiResolutionToolkitImage extends ToolkitImage implements MultiRe image, flags, x, y, width, height); }; - ObserverCache.INSTANCE.put(image, o); + ObserverCache.INSTANCE.put(observer, o); } return o; } diff --git a/src/share/classes/sun/java2d/pipe/DrawImage.java b/src/share/classes/sun/java2d/pipe/DrawImage.java index 6b10d247e439e9282a57a4426e2372db3292043a..cfa130b81992ef2b8db7a4b5df6b540a4d5311b7 100644 --- a/src/share/classes/sun/java2d/pipe/DrawImage.java +++ b/src/share/classes/sun/java2d/pipe/DrawImage.java @@ -364,8 +364,53 @@ public class DrawImage implements DrawImagePipe int sx1, int sy1, int sx2, int sy2, 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(); - 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, SunGraphics2D.TRANSFORM_GENERIC, sg.imageComp, @@ -429,56 +474,13 @@ public class DrawImage implements DrawImagePipe // 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(); - MaskBlit maskblit; - Blit blit; if (sg.compositeState <= SunGraphics2D.COMP_ALPHA) { /* NOTE: We either have, or we can make, * a MaskBlit for any alpha composite type */ - maskblit = MaskBlit.getFromCache(SurfaceType.IntArgbPre, - sg.imageComp, - dstType); + MaskBlit maskblit = MaskBlit.getFromCache(SurfaceType.IntArgbPre, + sg.imageComp, dstType); /* NOTE: We can only use the native TransformHelper * func to go directly to the dest if both the helper @@ -496,27 +498,19 @@ public class DrawImage implements DrawImagePipe null, 0, 0); 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 // 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); SurfaceData tmpData = SurfaceData.getPrimarySurfaceData(tmpimg); SurfaceType tmpType = tmpData.getSurfaceType(); - MaskBlit tmpmaskblit = - MaskBlit.getFromCache(SurfaceType.IntArgbPre, - CompositeType.SrcNoEa, - tmpType); + MaskBlit tmpmaskblit = MaskBlit.getFromCache(SurfaceType.IntArgbPre, + CompositeType.SrcNoEa, + tmpType); /* * The helper function fills a temporary edges buffer * for us with the bounding coordinates of each scanline @@ -531,7 +525,7 @@ public class DrawImage implements DrawImagePipe * * 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 // Transform in case it must return early and we would // not want to render anything on an error condition. @@ -539,35 +533,17 @@ public class DrawImage implements DrawImagePipe AlphaComposite.Src, null, itx, interpType, sx1, sy1, sx2, sy2, - 0, 0, dx2-dx1, dy2-dy1, + 0, 0, w, h, edges, dx1, dy1); - /* - * Now copy the results, scanline by scanline, into the dest. - * The edges array helps us minimize the work. + final Region region = Region.getInstance(dx1, dy1, dx2, dy2, edges); + clip = clip.getIntersection(region); + + /* NOTE: We either have, or we can make, + * a Blit for any composite type, even Custom */ - int index = 2; - for (int y = edges[0]; y < edges[1]; y++) { - 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); - } - } + final Blit blit = Blit.getFromCache(tmpType, sg.imageComp, dstType); + blit.Blit(tmpData, dstData, sg.composite, clip, 0, 0, dx1, dy1, w, h); } // Render an image using only integer translation diff --git a/src/share/classes/sun/java2d/pipe/Region.java b/src/share/classes/sun/java2d/pipe/Region.java index d3981268e770f33f2dafb6a91b6a806607363800..dc0460b78659eae44a172aa9c3d09edb56c205ae 100644 --- a/src/share/classes/sun/java2d/pipe/Region.java +++ b/src/share/classes/sun/java2d/pipe/Region.java @@ -30,6 +30,8 @@ import java.awt.Shape; import java.awt.geom.AffineTransform; import java.awt.geom.RectangularShape; +import sun.java2d.loops.TransformHelper; + /** * This class encapsulates a definition of a two dimensional region which * consists of a number of Y ranges each containing multiple X bands. @@ -160,6 +162,15 @@ public class Region { 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 * touched by a fill or clip operation on a Graphics implementation @@ -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 * by the indicated Rectangle object. diff --git a/src/share/classes/sun/reflect/Reflection.java b/src/share/classes/sun/reflect/Reflection.java index 63baa42abaec1aaa5feaeeaccde4daaf3465c3c5..bc3e13e23cb04b15d317b2206d5fcba2ca55a565 100644 --- a/src/share/classes/sun/reflect/Reflection.java +++ b/src/share/classes/sun/reflect/Reflection.java @@ -46,6 +46,7 @@ public class Reflection { map.put(Reflection.class, new String[] {"fieldFilterMap", "methodFilterMap"}); map.put(System.class, new String[] {"security"}); + map.put(Class.class, new String[] {"classLoader"}); fieldFilterMap = map; methodFilterMap = new HashMap<>(); diff --git a/src/share/native/sun/java2d/opengl/OGLBlitLoops.c b/src/share/native/sun/java2d/opengl/OGLBlitLoops.c index fa9a2fe34a554402dcebde158d683c9f1a3d458e..c96791f76cc54d1f110ce87284218400f6000cdc 100644 --- a/src/share/native/sun/java2d/opengl/OGLBlitLoops.c +++ b/src/share/native/sun/java2d/opengl/OGLBlitLoops.c @@ -674,6 +674,9 @@ OGLBlitLoops_Blit(JNIEnv *env, viaTexture = JNI_TRUE; break; #endif + case OGLC_VENDOR_INTEL: + viaTexture = JNI_TRUE; + break; default: // just use the glDrawPixels() codepath viaTexture = JNI_FALSE; diff --git a/src/share/native/sun/java2d/opengl/OGLContext.c b/src/share/native/sun/java2d/opengl/OGLContext.c index 013949126a4ab4190eae2ceb708a88a9e43eaadb..af1eb9c1adfd114a4b1f7182e826941d49721f81 100644 --- a/src/share/native/sun/java2d/opengl/OGLContext.c +++ b/src/share/native/sun/java2d/opengl/OGLContext.c @@ -917,8 +917,8 @@ OGLContext_GetExtensionInfo(JNIEnv *env, jint *caps) vcap = OGLC_VENDOR_ATI; } else if (strncmp(vendor, "NVIDIA", 6) == 0) { vcap = OGLC_VENDOR_NVIDIA; - } else if (strncmp(vendor, "Sun", 3) == 0) { - vcap = OGLC_VENDOR_SUN; + } else if (strncmp(vendor, "Intel", 5) == 0) { + vcap = OGLC_VENDOR_INTEL; } // REMIND: new in 7 - check if needs fixing *caps |= ((vcap & OGLC_VCAP_MASK) << OGLC_VCAP_OFFSET); diff --git a/src/share/native/sun/java2d/opengl/OGLContext.h b/src/share/native/sun/java2d/opengl/OGLContext.h index 0f44232f31676f317847024f1cb4136873f1bc8f..27c5cec59090040925b42b38bb0a3e57e5e2347f 100644 --- a/src/share/native/sun/java2d/opengl/OGLContext.h +++ b/src/share/native/sun/java2d/opengl/OGLContext.h @@ -152,7 +152,7 @@ typedef struct { #define OGLC_VENDOR_OTHER 0 #define OGLC_VENDOR_ATI 1 #define OGLC_VENDOR_NVIDIA 2 -#define OGLC_VENDOR_SUN 3 +#define OGLC_VENDOR_INTEL 3 #define OGLC_VCAP_MASK 0x3 #define OGLC_VCAP_OFFSET 24 diff --git a/src/solaris/classes/sun/awt/X11/XToolkit.java b/src/solaris/classes/sun/awt/X11/XToolkit.java index 7d0da74b065c74a1f76e1939a607f9b9ea1c30a0..8a264d20052accd514e22549ab7bc426da055d3b 100644 --- a/src/solaris/classes/sun/awt/X11/XToolkit.java +++ b/src/solaris/classes/sun/awt/X11/XToolkit.java @@ -102,11 +102,11 @@ public final class XToolkit extends UNIXToolkit implements Runnable { static TreeMap winMap = new TreeMap(); static HashMap specialPeerMap = new HashMap(); static HashMap winToDispatcher = new HashMap(); - private static long _display; static UIDefaults uidefaults; - static X11GraphicsEnvironment localEnv; - static X11GraphicsDevice device; - static final X11GraphicsConfig config; + static final X11GraphicsEnvironment localEnv; + private static final X11GraphicsDevice device; + private static final X11GraphicsConfig config; + private static final long display; static int awt_multiclick_time; static boolean securityWarningEnabled; @@ -117,15 +117,16 @@ public final class XToolkit extends UNIXToolkit implements Runnable { static { initSecurityWarning(); if (GraphicsEnvironment.isHeadless()) { + localEnv = null; + device = null; config = null; + display = 0; } else { localEnv = (X11GraphicsEnvironment) GraphicsEnvironment .getLocalGraphicsEnvironment(); device = (X11GraphicsDevice) localEnv.getDefaultScreenDevice(); - config = (X11GraphicsConfig) (device.getDefaultConfiguration()); - if (device != null) { - _display = device.getDisplay(); - } + config = (X11GraphicsConfig) device.getDefaultConfiguration(); + display = device.getDisplay(); setupModifierMap(); initIDs(); setBackingStoreType(); @@ -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() { - return _display; + if (localEnv == null) { + throw new AWTError("Local GraphicsEnvironment must not be null"); + } + return display; } public static long getDefaultRootWindow() { diff --git a/src/solaris/doc/sun/man/man1/ja/appletviewer.1 b/src/solaris/doc/sun/man/man1/ja/appletviewer.1 index b041bc1f3fa8e68dff9c8b8f45501e3d70dccf90..46c5ea8ab53ec00710faca715b19f5937999c8cc 100644 --- a/src/solaris/doc/sun/man/man1/ja/appletviewer.1 +++ b/src/solaris/doc/sun/man/man1/ja/appletviewer.1 @@ -27,7 +27,8 @@ .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "appletviewer" "1" "2013年11月21日" "JDK 8" "基本ツール" diff --git a/src/solaris/doc/sun/man/man1/ja/extcheck.1 b/src/solaris/doc/sun/man/man1/ja/extcheck.1 index d460c84fc8b1a3d1edc51fb8a3cc3b252a343b85..1d9b4992772ab99ed398e7ca654245b15acf05fb 100644 --- a/src/solaris/doc/sun/man/man1/ja/extcheck.1 +++ b/src/solaris/doc/sun/man/man1/ja/extcheck.1 @@ -27,7 +27,8 @@ .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "extcheck" "1" "2013年11月21日" "JDK 8" "基本ツール" diff --git a/src/solaris/doc/sun/man/man1/ja/idlj.1 b/src/solaris/doc/sun/man/man1/ja/idlj.1 index 1a3b35d9db9910d6600f4b4efb8b338c95a058ba..cecc503b0122f8cb4de2a4eb2a98c6e29199a8d0 100644 --- a/src/solaris/doc/sun/man/man1/ja/idlj.1 +++ b/src/solaris/doc/sun/man/man1/ja/idlj.1 @@ -27,7 +27,8 @@ .\" SectDesc: Java IDLおよびRMI-IIOPツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "idlj" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール" diff --git a/src/solaris/doc/sun/man/man1/ja/jar.1 b/src/solaris/doc/sun/man/man1/ja/jar.1 index 4914a6f38bdbf2fc46e712002dfdafd9c131bc40..77a0d069d41c6086baffa7f36a2f3d72d6da0bdf 100644 --- a/src/solaris/doc/sun/man/man1/ja/jar.1 +++ b/src/solaris/doc/sun/man/man1/ja/jar.1 @@ -27,7 +27,8 @@ .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jar" "1" "2013年11月21日" "JDK 8" "基本ツール" @@ -384,9 +385,7 @@ JAR .\} .SH "例" .PP -\fB例 1\fR -.br -冗長な出力による現在のディレクトリからのすべてのファイルの追加 +\fB例 1 \fR冗長な出力による現在のディレクトリからのすべてのファイルの追加 .RS 4 .sp .if n \{\ @@ -415,9 +414,7 @@ JAR .\} .RE .PP -\fB例 2\fR -.br -サブディレクトリからのファイルの追加 +\fB例 2 \fRサブディレクトリからのファイルの追加 .RS 4 .sp .if n \{\ @@ -449,9 +446,7 @@ JAR .\} .RE .PP -\fB例 3\fR -.br -JARのコンテンツのリスト +\fB例 3 \fRJARのコンテンツのリスト .RS 4 .sp .if n \{\ @@ -485,9 +480,7 @@ JAR .\} .RE .PP -\fB例 4\fR -.br -索引の追加 +\fB例 4 \fR索引の追加 .RS 4 株式取引のアプリケーションの相互依存クラスを、\fBmain\&.jar\fR、\fBbuy\&.jar\fRおよび\fBsell\&.jar\fRの3つのJARファイルに分割する場合、\fBi\fRオプションを使用します。\fBmain\&.jar\fRマニフェスト内の\fBClass\-Path\fR属性を指定する場合、\fBi\fRオプションを使用して、アプリケーションのクラス・ロードの速度を向上できます。 .sp diff --git a/src/solaris/doc/sun/man/man1/ja/jarsigner.1 b/src/solaris/doc/sun/man/man1/ja/jarsigner.1 index 055f2294780d0381075d1a62222acf7eeaa29596..1742125b33add0c2ff3444aaab7675423f174363 100644 --- a/src/solaris/doc/sun/man/man1/ja/jarsigner.1 +++ b/src/solaris/doc/sun/man/man1/ja/jarsigner.1 @@ -27,7 +27,8 @@ .\" SectDesc: セキュリティ・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jarsigner" "1" "2013年11月21日" "JDK 8" "セキュリティ・ツール" @@ -344,7 +345,7 @@ SHA256 .PP これら2つのファイルのベース・ファイル名は、\fB\-sigFile\fRオプションの値から作成されます。たとえば、オプションが\fB\-sigFile MKSIGN\fRの場合、ファイルは\fBMKSIGN\&.SF\fRおよび\fBMKSIGN\&.DSA\fRという名前になります。 .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 @@ -521,7 +522,7 @@ JAR .sp -1 .IP \(bu 2.3 .\} -イタリック体または下線付きの項目(オプションの値)の実際の値は、指定する必要があります。 +イタリックまたは下線付きの項目(オプションの値)の実際の値は、指定する必要があります。 .RE .sp .RS 4 @@ -664,9 +665,9 @@ JAR .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ディレクトリに格納されます。 .sp -ファイル内の文字は、セット\fBa\-zA\-Z0\-9_\-\fRから指定される必要があります。アルファベット、数字、下線およびハイフン文字のみを使用できます。\fB\&.SF\fRおよび\fB\&.DSA\fRのファイル名では、小文字はすべて大文字に変換されます。 +ファイル内の文字は、セット\fBa\-zA\-Z0\-9_\-\fRから指定される必要があります。アルファベット、数字、アンダースコアおよびハイフン文字のみを使用できます。\fB\&.SF\fRおよび\fB\&.DSA\fRのファイル名では、小文字はすべて大文字に変換されます。 .sp -コマンド行で\fB\-sigfile\fRオプションを指定しなかった場合、\fB\&.SF\fRファイルと\fB\&.DSA\fRファイルのベース・ファイル名は、コマンド行で指定された別名の先頭の8文字をすべて大文字に変換したものになります。別名が8文字未満の場合は、別名がそのまま使用されます。別名に、署名ファイル名で無効な文字が含まれている場合、ファイル名を作成するために、該当する文字が下線(_)文字に変換されます。 +コマンド行で\fB\-sigfile\fRオプションを指定しなかった場合、\fB\&.SF\fRファイルと\fB\&.DSA\fRファイルのベース・ファイル名は、コマンド行で指定された別名の先頭の8文字をすべて大文字に変換したものになります。別名が8文字未満の場合は、別名がそのまま使用されます。別名に、署名ファイル名で無効な文字が含まれている場合、ファイル名を作成するために、該当する文字がアンダースコア(_)文字に変換されます。 .RE .PP \-sigalg \fIalgorithm\fR @@ -1001,7 +1002,7 @@ noTimestamp .RE .\} .PP -検証が成功すると、\fBjar verified\fRが表示されます。そうでない場合は、エラー・メッセージが表示されます。\fB\-verbose\fRオプションを使用すると、詳細情報を取得できます。\fBjarsigner\fRを\fB\-verbose\fRオプションとともに使用するサンプルを、次に示します。 +検証が成功すると、\fBjar verified\fRが表示されます。有効でない場合は、エラー・メッセージが表示されます。\fB\-verbose\fRオプションを使用すると、詳細情報を取得できます。\fBjarsigner\fRを\fB\-verbose\fRオプションとともに使用するサンプルを、次に示します。 .sp .if n \{\ .RS 4 diff --git a/src/solaris/doc/sun/man/man1/ja/java.1 b/src/solaris/doc/sun/man/man1/ja/java.1 index ffca1e2152b565950ecf4a5a9a9dd43503322504..46e5c705073c838df3d3e6b44e3ebd3484d2797c 100644 --- a/src/solaris/doc/sun/man/man1/ja/java.1 +++ b/src/solaris/doc/sun/man/man1/ja/java.1 @@ -23,14 +23,15 @@ .\" .\" Title: java .\" Language: Japanese -.\" Date: 2014年8月8日 +.\" Date: 2015年3月3日 .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 -.TH "java" "1" "2014年8月8日" "JDK 8" "基本ツール" +.TH "java" "1" "2015年3月3日" "JDK 8" "基本ツール" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -652,7 +653,7 @@ JIT .PP \-Xmx\fIsize\fR .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 次の例では、割り当てられたメモリーの許可される最大サイズを様々な単位を使用して80MBに設定する方法を示します。 .sp @@ -877,14 +878,14 @@ JVM .RS 4 バイトコード・ベリファイアのモードを設定します。バイトコードの検証は一部の問題のトラブルシューティングに役立ちますが、実行中のアプリケーションへのオーバーヘッドを増大させます。このオプションで使用可能な\fImode\fR引数は次のとおりです。 .PP -none +なし .RS 4 バイトコードを検証しません。これにより、起動時間が短縮され、Javaによって提供される保護も軽減されます。 .RE .PP remote .RS 4 -ネットワークを介してリモートでロードされるクラスのみを検証します。これは、\fB\-Xverify\fRオプションを指定しない場合のデフォルトの動作です。 +ブートストラップ・クラス・ローダーでロードされていないこれらのクラスを検証します。これは、\fB\-Xverify\fRオプションを指定しない場合のデフォルトの動作です。 .RE .PP all @@ -938,9 +939,9 @@ JVM .PP \-XX:LargePageSizeInBytes=\fIsize\fR .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 -次の例では、大きいページのサイズを4メガバイト(MB)に設定する方法を示します。 +次の例では、ラージ・ページのサイズを4メガバイト(MB)に設定する方法を示します。 .sp .if n \{\ .RS 4 @@ -995,6 +996,17 @@ JVM .RE .RE .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 .RS 4 リカバリ不能なエラーが発生したときに実行する、カスタム・コマンドまたは一連のセミコロン区切りのコマンドを設定します。文字列に空白が含まれている場合は、引用符で囲む必要があります。 @@ -1018,6 +1030,22 @@ JVM \fBOutOfMemoryError\fR例外が最初にスローされたときに実行する、カスタム・コマンドまたは一連のセミコロン区切りのコマンドを設定します。文字列に空白が含まれている場合は、引用符で囲む必要があります。コマンド文字列の例は、\fB\-XX:OnError\fRオプションの説明を参照してください。 .RE .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 .RS 4 コマンド行に表示された、人間工学的に選択したJVMフラグの印刷を有効にします。これは、ヒープ領域サイズや選択されたガベージ・コレクタなど、JVMによって設定されたエルゴノミック値を確認する場合に役立ちます。デフォルトでは、このオプションは無効であり、フラグは印刷されません。 @@ -1166,25 +1194,32 @@ Windows: JVM内部シグナルの\fBSIGUSR1\fRおよび\fBSIGUSR2\fRのかわりに、代替シグナルの使用を有効にします。デフォルトでは、このオプションは無効であり、代替シグナルは使用されません。このオプションは\fB\-Xusealtsigs\fRと同等です。 .RE .PP -\-XX:+UseBiasedLocking +\-XX:\-UseBiasedLocking .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 デフォルトでは、このオプションは有効になっています。 .RE .PP -\-XX:+UseCompressedOops +\-XX:\-UseCompressedOops .RS 4 -圧縮されたポインタの使用を有効にします。このオプションを有効にすると、オブジェクト参照は、64ビットのポインタではなく32ビットのオフセットとして表され、これにより、32GBより小さいJavaヒープ・サイズのアプリケーションの実行時に、通常、パフォーマンスが向上します。このオプションは、64ビットのJVMでのみ機能します。 +圧縮されたポインタの使用を無効にします。デフォルトではこのオプションが有効であり、Javaヒープ・サイズが32GBより小さい場合に圧縮ポインタが使用されます。このオプションを有効にすると、オブジェクト参照は、64ビットのポインタではなく32ビットのオフセットとして表され、これにより、32GBより小さいJavaヒープ・サイズのアプリケーションの実行時に、通常、パフォーマンスが向上します。このオプションは、64ビットのJVMでのみ機能します。 .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 .PP \-XX:+UseLargePages .RS 4 -大きいページのメモリーの使用を有効にします。このオプションはデフォルトで有効になっています。大きいページのメモリーの使用を無効にするには、\fB\-XX:\-UseLargePages\fRを指定します。 +ラージ・ページのメモリーの使用を有効にします。デフォルトでは、このオプションは無効であり、ラージ・ページのメモリーは使用されません。 .sp -詳細は、http://www\&.oracle\&.com/technetwork/java/javase/tech/largememory\-jsp\-137182\&.htmlにある大きいメモリー・ページ用のJavaサポートを参照してください。 +詳細は、"ラージ・ページ"を参照してください。 .RE .PP \-XX:+UseMembar @@ -1197,6 +1232,13 @@ JVM \fBperfdata\fR機能を有効にします。このオプションはデフォルトで有効になっており、JVMのモニタリングおよびパフォーマンス・テストが可能になります。これを無効にすると、\fBhsperfdata_userid\fRディレクトリの作成を抑制します。\fBperfdata\fR機能を無効にするには、\fB\-XX:\-UsePerfData\fRを指定します。 .RE .PP +\-XX:+UseTransparentHugePages +.RS 4 +Linuxでは、動的に拡張または縮小できるラージ・ページの使用を有効化してください。このオプションは、デフォルトでは無効になっています。OSが他のページを移動してヒュージ・ページを作成するため、透過的ヒュージ・ページでパフォーマンスの問題が検出される場合があります。このオプションは試験的に使用できます。 +.sp +詳細は、"ラージ・ページ"を参照してください。 +.RE +.PP \-XX:+AllowUserSignalHandlers .RS 4 アプリケーションによるシグナル・ハンドラのインストールを有効にします。デフォルトでは、このオプションは無効であり、アプリケーションはシグナル・ハンドラをインストールすることは許可されていません。 @@ -1569,7 +1611,7 @@ JIT .PP \-XX:CompileThreshold=\fIinvocations\fR .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 .if n \{\ .RS 4 @@ -1591,7 +1633,7 @@ JIT .PP \-XX:InitialCodeCacheSize=\fIsize\fR .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 .if n \{\ .RS 4 @@ -1711,7 +1753,17 @@ JIT .PP \-XX:ReservedCodeCacheSize=\fIsize\fR .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 .PP \-XX:+TieredCompilation @@ -1751,39 +1803,52 @@ UseAES カード表の更新前に、カードがすでにマークされているかどうかのチェックを有効にします。このオプションは、デフォルトでは無効になっており、複数のソケットを持つマシン上でのみ使用する必要があります。これにより、同時操作にかなり依存しているJavaアプリケーションのパフォーマンスが向上します。Java HotSpot Server VMのみが、このオプションをサポートしています。 .RE .PP -\-XX:+UseSuperWord +\-XX:+UseRTMDeopt .RS 4 -スカラー演算のスーパーワード演算への変換を有効にします。このオプションはデフォルトで有効になっています。スカラー演算のスーパーワード演算への変換を無効にするには、\fB\-XX:\-UseSuperWord\fRを指定します。Java HotSpot Server VMのみが、このオプションをサポートしています。 +中止率に応じて、RTMロックを自動調整します。この率は、\fB\-XX:RTMAbortRatio\fRオプションによって指定されます。中止されたトランザクション数が中止率を超えた場合、ロックを含むメソッドがすべてのロックで標準のロックとして非最適化および再コンパイルされます。このオプションは、デフォルトでは無効になっています。\fB\-XX:+UseRTMLocking\fRオプションを有効化する必要があります。 .RE -.SS "試験的なJITコンパイラ・オプション" .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 -\-XX:RTMAbortRatio=\fIabort_ratio\fR +\-XX:+UseSHA .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 .PP -\-XX:RTMRetryCount=\fInumber_of_retries\fR +\-XX:+UseSHA1Intrinsics .RS 4 -中止またはビジーの場合、RTMロック・コードは、標準のロック・メカニズムにフォールバックする前にこのオプションによって指定された回数再試行されます。このオプションのデフォルト値は5です。\fB\-XX:UseRTMLocking\fRオプションを有効化する必要があります。 +SHA\-1暗号化ハッシュ関数の組込みを有効にします。 .RE .PP -\-XX:+UseRTMDeopt +\-XX:+UseSHA256Intrinsics .RS 4 -中止率に応じて、RTMロックを自動調整します。この率は、\fB\-XX:RTMAbortRatio\fRオプションによって指定されます。中止されたトランザクション数が中止率を超えた場合、ロックを含むメソッドがすべてのロックで標準のロックとして非最適化および再コンパイルされます。このオプションは、デフォルトでは無効になっています。\fB\-XX:UseRTMLocking\fRオプションを有効化する必要があります。 +SHA\-224およびSHA\-256暗号化ハッシュ関数の組込みを有効にします。 .RE .PP -\-XX:+UseRTMLocking +\-XX:+UseSHA512Intrinsics .RS 4 -フォールバック・ハンドラとして標準のロック・メカニズムを使用して、展開されたすべてのロックに対してRestricted Transactional Memory (RTM)ロック・コードを生成します。このオプションは、デフォルトでは無効になっています。 -.sp -RTMは、x86命令セット拡張でマルチスレッド・アプリケーションの作成を容易にするIntelのTransactional Synchronization Extensions (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により、誤ったキャッシュ・ライン共有(キャッシュ・ライン・ピンポンとも呼ばれる)を削減できます。これは、異なるプロセッサからの複数のスレッドが異なるリソースにアクセスしている場合に発生しますが、リソースは同じキャッシュ・ラインを共有します。結果として、プロセッサは他のプロセッサのキャッシュ・ラインを繰り返し無効にし、これにより、キャッシュではなくメイン・メモリーからの読取りが強制されます。 +SHA\-384およびSHA\-512暗号化ハッシュ関数の組込みを有効にします。 +.RE +.PP +\-XX:+UseSuperWord +.RS 4 +スカラー演算のスーパーワード演算への変換を有効にします。このオプションはデフォルトで有効になっています。スカラー演算のスーパーワード演算への変換を無効にするには、\fB\-XX:\-UseSuperWord\fRを指定します。Java HotSpot Server VMのみが、このオプションをサポートしています。 .RE .SS "高度なサービスアビリティ・オプション" .PP @@ -1855,7 +1920,7 @@ RTM .PP \-XX:+PrintConcurrentLocks .RS 4 -次の印刷を有効化します: j ロック(次の後) \- イベント。デフォルトでは、このオプションは無効です。 +印刷を有効にします ロック(次の後) \- イベント。デフォルトでは、このオプションは無効です。 .sp \fB[Control]+[C]\fRイベント(\fBSIGTERM\fR)後に\fBjava\&.util\&.concurrent\fRロックの印刷を有効にします。デフォルトでは、このオプションは無効です。 .sp @@ -2018,7 +2083,7 @@ G1 .PP \-XX:InitialHeapSize=\fIsize\fR .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 次の例では、割り当てられたメモリーのサイズを様々な単位を使用して6MBに設定する方法を示します。 .sp @@ -2109,7 +2174,7 @@ G1 .PP \-XX:MaxHeapSize=\fIsize\fR .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 次の例では、割り当てられたメモリーの許可される最大サイズを様々な単位を使用して80MBに設定する方法を示します。 .sp @@ -2480,6 +2545,13 @@ CMS シリアル・ガベージ・コレクタの使用を有効にします。ガベージ・コレクションから特別な機能を必要としない、小規模で単純なアプリケーションの場合には、これは一般に最適な選択です。デフォルトでは、このオプションは無効になっており、コレクタは、マシンの構成およびJVMのタイプに基づいて、自動的に選択されます。 .RE .PP +\-XX:+UseSHM +.RS 4 +Linuxでは、JVMで共有メモリーを使用してラージ・ページを設定できるようにします。 +.sp +詳細は、"ラージ・ページ"を参照してください。 +.RE +.PP \-XX:+UseStringDeduplication .RS 4 文字列の重複除外を有効化します。デフォルトでは、このオプションは無効です。このオプションを使用するには、ガベージファースト(G1)・ガベージ・コレクタを有効にする必要があります。\fB\-XX:+UseG1GC\fRオプションを参照してください。 @@ -2502,7 +2574,7 @@ CMS .PP \-Xrun\fIlibname\fR .RS 4 -指定したデバッグ/プロファイルのライブラリをロードします。このオプションは、\fB\-agentlib\fRオプションに取って代わられました。 +指定したデバッグ/プロファイリングのライブラリをロードします。このオプションは、\fB\-agentlib\fRオプションに取って代わられました。 .RE .PP \-XX:CMSIncrementalDutyCycle=\fIpercent\fR @@ -2563,9 +2635,7 @@ GC .PP 次の例では、スループットの最適化またはレスポンス時間の短縮化のいずれかを行うための、試験的なチューニング・フラグの使用方法を示します。 .PP -\fB例 1\fR -.br -スループットを向上するためのチューニング +\fB例 1 \fRスループットを向上するためのチューニング .RS 4 .sp .if n \{\ @@ -2580,9 +2650,7 @@ GC .\} .RE .PP -\fB例 2\fR -.br -レスポンス時間を速くするためのチューニング +\fB例 2 \fRレスポンス時間を速くするためのチューニング .RS 4 .sp .if n \{\ @@ -2596,6 +2664,188 @@ GC .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 "終了ステータス" .PP 通常、次の終了値が起動ツールから返されるのは、起動元が不正な引数で呼び出されたか、深刻なエラーが発生したか、あるいはJVMにより例外がスローされた場合です。ただし、Javaアプリケーションは、API呼出し\fBSystem\&.exit(exitValue)\fRを使用して任意の値を返すことを選択することもできます。値は次のとおりです。 @@ -2666,6 +2916,17 @@ javah(1) .\} jar(1) .RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +jstat(1) +.RE .br 'pl 8.5i 'bp diff --git a/src/solaris/doc/sun/man/man1/ja/javac.1 b/src/solaris/doc/sun/man/man1/ja/javac.1 index 52a19d43d5a3bf81fbeb990cad6af4698fa229ca..efb99203655e3bbd10f36997e335b478520ff540 100644 --- a/src/solaris/doc/sun/man/man1/ja/javac.1 +++ b/src/solaris/doc/sun/man/man1/ja/javac.1 @@ -23,14 +23,15 @@ .\" .\" Title: javac .\" Language: Japanese -.\" Date: 2014年8月8日 +.\" Date: 2015年3月3日 .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 -.TH "javac" "1" "2014年8月8日" "JDK 8" "基本ツール" +.TH "javac" "1" "2015年3月3日" "JDK 8" "基本ツール" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -154,7 +155,7 @@ javac \- Java .PP \-cp \fIpath\fR or \-classpath \fIpath\fR .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 \fB\-sourcepath\fRオプションが指定されていない場合、ソース・ファイルもユーザー・クラス・パスから検索されます。 .sp @@ -1122,9 +1123,7 @@ varargs .PP \fBjavac\fRコマンドを実行するときに、各引数ファイルのパスと名前の先頭にアットマーク(@)文字を付けて渡します。\fBjavac\fRコマンドは、アットマーク(@)で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。 .PP -\fB例 1\fR -.br -単一の引数ファイル +\fB例 1 \fR単一の引数ファイル .RS 4 \fBargfile\fRという名前の単一の引数ファイルを使用して、すべての\fBjavac\fR引数を格納する場合は、次のように指定します。 .sp @@ -1141,9 +1140,7 @@ varargs この引数ファイルには、例2で示されている両方のファイルの内容を入れることができます。 .RE .PP -\fB例 2\fR -.br -2つの引数ファイル +\fB例 2 \fR2つの引数ファイル .RS 4 \fBjavac\fRオプション用とソース・ファイル名用に、2つの引数ファイルを作成できます。次のリストには、行の継続文字はありません。 .sp @@ -1216,9 +1213,7 @@ varargs .\} .RE .PP -\fB例 3\fR -.br -パスを使用した引数ファイル +\fB例 3 \fRパスを使用した引数ファイル .RS 4 引数ファイルはパスを指定できますが、ファイル内のすべてのファイル名は、(\fBpath1\fRや\fBpath2\fRではなく)次のように現在の作業ディレクトリに相対的となります。 .sp @@ -1317,9 +1312,7 @@ varargs 名前が\fBcom\&.sun\&.tools\&.javac\fRで始まるパッケージ(\fBcom\&.sun\&.tools\&.javac\fRのサブパッケージ)で検出される他のすべてのクラスおよびメソッドは、完全に内部用であり、いつでも変更される可能性があります。 .SH "例" .PP -\fB例 1\fR -.br -簡単なプログラムのコンパイル +\fB例 1 \fR簡単なプログラムのコンパイル .RS 4 この例では、greetingsディレクトリで\fBHello\&.java\fRソース・ファイルをコンパイルする方法を示しています。\fBHello\&.java\fRで定義されたクラスは、\fBgreetings\&.Hello\fRと呼ばれます。greetingsディレクトリは、ソース・ファイルとクラス・ファイルの両方があるパッケージ・ディレクトリで、現在のディレクトリのすぐ下にあります。これにより、デフォルトのユーザー・クラス・パスを使用できるようになります。また、\fB\-d\fRオプションを使用して別の出力先ディレクトリを指定する必要もありません。 .sp @@ -1372,9 +1365,7 @@ greetings\&.Hello .\} .RE .PP -\fB例 2\fR -.br -複数のソース・ファイルのコンパイル +\fB例 2 \fR複数のソース・ファイルのコンパイル .RS 4 この例では、\fBgreetings\fRパッケージのソース・ファイル\fBAloha\&.java\fR、\fBGutenTag\&.java\fR、\fBHello\&.java\fRおよび\fBHi\&.java\fRをコンパイルします。 .sp @@ -1393,9 +1384,7 @@ greetings\&.Hello .\} .RE .PP -\fB例 3\fR -.br -ユーザー・クラス・パスの指定 +\fB例 3 \fRユーザー・クラス・パスの指定 .RS 4 前述の例のソース・ファイルのうち1つを変更した後に、そのファイルを再コンパイルします。 .sp @@ -1450,9 +1439,7 @@ greetings\&.Hello .\} .RE .PP -\fB例 4\fR -.br -ソース・ファイルとクラス・ファイルの分離 +\fB例 4 \fRソース・ファイルとクラス・ファイルの分離 .RS 4 次の例では、\fBjavac\fRを使用して、JVM 1\&.7上で実行するコードをコンパイルします。 .sp @@ -1486,9 +1473,7 @@ greetings\&.Hello 適切なバージョンのブートストラップ・クラスを指定しない場合、コンパイラは古い言語仕様(この例では、バージョン1\&.7のJavaプログラミング言語)を新しいブートストラップ・クラスと組み合せて使用します。その結果、存在しないメソッドへの参照が含まれていることがあるため、クラス・ファイルが古いプラットフォーム(この場合はJava SE 7)で動作しない可能性があります。 .RE .PP -\fB例 5\fR -.br -クロス・コンパイル +\fB例 5 \fRクロス・コンパイル .RS 4 この例では、\fBjavac\fRを使用して、JVM 1\&.7上で実行するコードをコンパイルします。 .sp @@ -1503,7 +1488,7 @@ greetings\&.Hello .if n \{\ .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 \fB\-bootclasspath\fRオプションを使用して、適切なバージョンのブートストラップ・クラス(\fBrt\&.jar\fRライブラリ)を指定する必要があります。指定しない場合は、コンパイラによって次の警告が生成されます。 .sp diff --git a/src/solaris/doc/sun/man/man1/ja/javadoc.1 b/src/solaris/doc/sun/man/man1/ja/javadoc.1 index 5be569b72fe501121137d43ff63e4e4fb7285f29..3fe80924bd1126dbac5f3e3b7784938723291bb7 100644 --- a/src/solaris/doc/sun/man/man1/ja/javadoc.1 +++ b/src/solaris/doc/sun/man/man1/ja/javadoc.1 @@ -23,14 +23,15 @@ .\" .\" Title: javadoc .\" Language: Japanese -.\" Date: 2011年5月10日 +.\" Date: 2015年3月3日 .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 -.TH "javadoc" "1" "2011年5月10日" "JDK 8" "基本ツール" +.TH "javadoc" "1" "2015年3月3日" "JDK 8" "基本ツール" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -359,7 +360,7 @@ package\&.html .IP \(bu 2.3 .\} 処理できるようにコメントをコピーします。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 .sp .RS 4 @@ -1425,9 +1426,9 @@ JDK 1\&.0 .RS 4 JDK 1\&.5で導入 .sp -\fB<code>{@literal}</code>\fRと同等です。 +\fB<code>{@literal}</code>\fRと同じです。 .sp -テキストをHTMLマークアップまたはネストされたJavadocタグとして解釈せずに、textをコード・フォントで表示します。これにより、ドキュメンテーション・コメントでは、パラメータの型(\fB<Object>\fR)、不等号(\fB3 < 4\fR)、矢印(\fB<\-\fR)などで、通常の山カッコ(<および>)をHTMLエンティティ(\fB<\fRおよび\fB>\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<\fRおよび\fB>\fR)のかわりに使用できます。たとえば、ドキュメンテーション・コメント・テキスト\fB{@code A<B>C}\fRは、\fBA<B>C\fRとして変更されずに生成されたHTMLページに表示されます。つまり、\fB<B>\fRが太字として解釈されず、そのフォントはコード・フォントになります。コード・フォントなしで同じ機能を実現するには、\fB{@literal}\fRタグを使用します。 .RE .PP @deprecated \fIdeprecated\-text\fR @@ -1594,7 +1595,7 @@ JDK 1\&.4 .RS 4 JDK 1\&.5で導入 .sp -テキストをHTMLマークアップまたはネストされたJavadocタグとして解釈せずに、textを表示します。これにより、ドキュメンテーション・コメントでは、パラメータの型(\fB<Object>\fR)、不等号(\fB3 < 4\fR)、矢印(<\-)などで、山カッコ(\fB<および>\fR)をHTMLエンティティ(\fB<\fRおよび\fB>\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<\fRおよび\fB>\fR)のかわりに使用できます。たとえば、ドキュメンテーション・コメント・テキスト\fB{@literal A<B>C}\fRは、\fBA<B>C\fRとしてブラウザの生成されたHTMLページで変更されずに表示されます。\fB<B>\fRは太字として解釈されません(コード・フォントになりません)。コード・フォントで同じ機能を実現するには、\fB{@code}\fRタグを使用します。 .RE .PP @param \fIparameter\-name description\fR @@ -1664,7 +1665,7 @@ JDK 1\&.0 .sp "The Java Programming Language" .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 \fB関連項目\fR: .sp @@ -1673,7 +1674,7 @@ Java Spec \fB形式3\fR。\fB@see package\&.class#member label\fR形式は、表示テキスト・ラベルとともにリンクを追加します。このラベルは参照されているJava言語の指定された名前のドキュメントを指し示します。ラベルはオプションです。ラベルを省略した場合は、表示テキストのかわりに、名前が適切に短縮されて表示されます。\fB\-noqualifier\fRオプションを使用すると、この表示テキストからパッケージ名が全体的に削除されます。ラベルは、自動生成される表示テキストとは異なる表示テキストにする場合に使用します。「名前が表示される方法」を参照してください。 .sp 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 .RS 4 .ie n \{\ @@ -2290,15 +2291,677 @@ Javadoc .RE .PP オプションは次のとおりです。 -.PP -\-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 || - -\-overview path/filename || -\-package || \-private || \-protected || \-public || \-quiet || \-serialwarn || \-source release || \-sourcepath sourcepathlist || \-sourcetab tablength || \-splitindex || - -\-stylesheet path/filename || - -||\-subpackages package1:package2:\&.\&.\&. || \-tag tagname:Xaoptcmf:"taghead" || \-taglet class || \-tagletpath tagletpathlist || \-title title || \-top || \-use || \-verbose || \-version || \-windowtitle title +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\-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 次のオプションは、すべてのドックレットに使用可能なコアの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オプション" @@ -2306,7 +2969,7 @@ Javadoc \-overview \fIpath/filename \fR .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 \fBfilename\fRの値で任意の名前を使用し、pathで任意の配置先を指定できますが、通常はoverview\&.htmlという名前を付け、ソース・ツリー内の最上位パッケージ・ディレクトリを含むディレクトリに配置します。この場所に配置すると、パッケージをドキュメント化するときにpathを指定する必要がなくなります。これは、\fB\-sourcepath\fRオプションによってこのファイルが指し示されるからです。 .sp @@ -2316,7 +2979,7 @@ Javadoc .sp \fIpath/filename\fRで指定するファイルについては、概要コメント・ファイルを参照してください。 .sp -概要ページが作成されるのは、\fBjavadoc\fRコマンドに複数のパッケージ名を渡した場合のみです。詳細は、HTMLフレームを参照してください。概要ページのタイトルは、\fB\-doctitle\fRによって設定されます。 +「概要」ページが作成されるのは、\fBjavadoc\fRコマンドに複数のパッケージ名を渡した場合のみです。詳細は、HTMLフレームを参照してください。「概要」ページのタイトルは、\fB\-doctitle\fRによって設定されます。 .RE .PP \-Xdoclint:(all|none|[\-]\fI<group>\fR) @@ -2537,8 +3200,9 @@ Javadoc 1\&.4 \-sourcepath \fIsourcepathlist\fR .RS 4 パッケージ名または\fB\-subpackages\fRオプションを\fBjavadoc\fRコマンドに渡すときに、ソース・ファイルを見つけるための検索パスを指定します。 - +.sp 複数のパスはコロン(:)で区切ります。 +.sp \fBjavadoc\fRコマンドは、指定されたパス以下のすべてのサブディレクトリを検索します。このオプションを使用して、ドキュメント化されるソース・ファイルの位置のみでなく、それ自体はドキュメント化されないがドキュメント化されるソース・ファイルから継承されたコメントを持つソース・ファイルの位置も確認できます。 .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コマンドは現在のディレクトリ(およびそのサブディレクトリ)からソース・ファイルを検索します。 @@ -2578,8 +3242,9 @@ Javadoc 1\&.4 \-classpath \fIclasspathlist\fR .RS 4 \fBjavadoc\fRコマンドが参照クラスの検索を行うときに使用するパスを指定します。参照クラスとは、ドキュメント化されるクラスと、それらのクラスによって参照されるすべてのクラスのことです。 - +.sp 複数のパスはコロン(:)で区切ります。 +.sp \fBjavadoc\fRコマンドは、指定されたパス以下のすべてのサブディレクトリを検索します。\fBclasspathlist\fRの値を指定するときは、クラス・パスのドキュメントにある指示に従ってください。 .sp \fB\-sourcepath\fRが省略された場合、\fBjavadoc\fRコマンドは\fB\-classpath\fRを使用して、ソース・ファイルおよびクラス・ファイルを検索します(後方互換性のため)。ソース・ファイルとクラス・ファイルを別々のパスから検索する必要がある場合は、\fB\-sourcepath\fRと\fB\-classpath\fRの両方を使用します。 @@ -2689,7 +3354,7 @@ Javadoc 1\&.4 .sp -1 .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 .sp 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 \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 +.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 .if n \{\ .RE @@ -2740,12 +3424,12 @@ Java SE 1\&.5 .RS 4 \fBjavadoc\fRコマンドが生成されたHTMLファイルを保存する生成先ディレクトリを指定します。\fB\-d\fRオプションを省略すると、ファイルは現在のディレクトリに保存されます。\fBdirectory\fRの値には、絶対ディレクトリ、または現在の作業ディレクトリからの相対ディレクトリを指定できます。Java SE 1\&.4では、\fBjavadoc\fRコマンドを実行すると生成先ディレクトリが自動的に作成されます。 .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 .PP \-use .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 .PP \-version @@ -2847,9 +3531,7 @@ HTML .PP 外部APIドキュメントへの絶対URLを使用する場合(そのURLに接続し、読取りを行うことがシェルによって許可されていない場合)は\fB\-linkoffline\fRオプションを使用します。このような状況は、ファイアウォールの内側からファイアウォールの外側にあるドキュメントにリンクしようとする場合に発生します。 .PP -\fB例 1\fR -.br -外部ドキュメントへの絶対リンク +\fB例 1 \fR外部ドキュメントへの絶対リンク .RS 4 http://docs\&.oracle\&.com/javase/8/docs/api/index\&.htmlに示すような、\fBjava\&.lang\fR、\fBjava\&.io\fRおよびその他のJavaプラットフォーム・パッケージにリンクする場合、次のコマンドを使用します .sp @@ -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などの他のオプションは表示されません。 .RE .PP -\fB例 2\fR -.br -外部ドキュメントへの相対リンク +\fB例 2 \fR外部ドキュメントへの相対リンク .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 .sp @@ -3034,7 +3714,7 @@ package\-list .PP ドキュメントの更新 .PP -プロジェクトに何十または何百のパッケージが含まれる場合にも、\fB\-linkoffline\fRオプションを使用できます。ソース・ツリー全体ですでに\fBjavadoc\fRコマンドを実行したことがある場合、ドキュメンテーション・コメントにわずかな変更を迅速に加え、ソース・ツリーの一部で\fBjavadoc\fRコマンドを再実行することができます。2回目の実行は、ドキュメンテーション・コメントを変更し、宣言は変更しない場合にのみ正しく処理されることに注意してください。ソース・コードに対して宣言を追加、削除、または変更した場合は、索引、パッケージ・ツリー、継承されるメンバーのリスト、使用ページなどの場所で、リンクが壊れることがあります。 +プロジェクトに何十または何百のパッケージが含まれる場合にも、\fB\-linkoffline\fRオプションを使用できます。ソース・ツリー全体ですでに\fBjavadoc\fRコマンドを実行したことがある場合、ドキュメンテーション・コメントにわずかな変更を迅速に加え、ソース・ツリーの一部で\fBjavadoc\fRコマンドを再実行することができます。2回目の実行は、ドキュメンテーション・コメントを変更し、宣言は変更しない場合にのみ正しく処理されることに注意してください。ソース・コードに対して宣言を追加、削除、または変更した場合は、索引、パッケージ・ツリー、継承されるメンバーのリスト、「使用」ページなどの場所で、リンクが壊れることがあります。 .PP まず、この新しい小規模な実行で使用する、新しい生成先ディレクトリ(updateなど)を作成します。この例では、元の生成先ディレクトリの名前はhtmlです。最も単純な例では、htmlディレクトリの親ディレクトリに移動します。\fB\-linkoffline\fRオプションの第1引数にカレント・ディレクトリ(\&.)を設定し、第2引数にpackage\-listが検索されるhtmlへの相対パスを設定し、更新するパッケージのパッケージ名のみを渡します。 .sp @@ -3053,7 +3733,7 @@ package\-list .PP \-linksource .RS 4 -各ソース・ファイル(行番号付き)のHTMLバージョンを作成し、標準HTMLドキュメントからソース・ファイルへのリンクを追加します。リンクは、ソース・ファイル内に宣言されているクラス、インタフェース、コンストラクタ、メソッド、フィールドに対して作成されます。そうでない場合、たとえばデフォルト・コンストラクタや生成されたクラスに対しては、リンクは作成されません。 +各ソース・ファイル(行番号付き)のHTMLバージョンを作成し、標準HTMLドキュメントからソース・ファイルへのリンクを追加します。リンクは、ソース・ファイル内に宣言されているクラス、インタフェース、コンストラクタ、メソッド、フィールドに対して作成されます。デフォルト・コンストラクタ、生成されたクラスなどに対しては作成されません。 .sp このオプションは、\fB\-public\fR、\fB\-package\fR、\fB\-protected\fRおよび\fB\-private\fRの各オプションとは関係なく、非公開のクラス、フィールド、非公開のメソッドの本体をはじめとする組み込まれたソース・ファイル内のすべての非公開実装の詳細を公開します。\fB\-private\fRオプションもあわせて指定しないかぎり、非公開のクラスやインタフェースの一部には、リンクを介してアクセスできないことがあります。 .sp @@ -3342,7 +4022,7 @@ HTML .sp 標準タグは、最初、デフォルトの順序でリスト内に内部的に格納されます。\fB\-tag\fRオプションを使用すると、それらのタグはこのリストに追加されます。標準タグは、デフォルトの位置から移動されます。そのため、標準タグの\fB\-tag\fRオプションを省略すると、それはデフォルトの位置に配置されたままになります。 .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 \fB注釈vs\&. Javadocタグ\fR: 一般に、追加する必要のあるマークアップが、ドキュメントに影響を与えたりドキュメントを生成したりするためのものである場合、そのマークアップはJavadocタグにします。それ以外の場合は注釈にします。JavadocツールでのDocコメントの記述方法のカスタム・タグと注釈に関する項 (http://www\&.oracle\&.com/technetwork/java/javase/documentation/index\-137868\&.html#annotations)を参照してください。 @@ -3428,16 +4108,12 @@ doc\-files .PP \fBjavadoc\fRを実行するときに、各引数ファイルのパスとファイル名の先頭に@文字を付けて渡します。\fBjavadoc\fRコマンドは、アットマーク(@)文字で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。 .PP -\fB例 1\fR -.br -単一の引数ファイル +\fB例 1 \fR単一の引数ファイル .RS 4 \fBargfile\fRという名前の1つの引数ファイルを使用して、すべての\fBjavadoc\fRコマンド引数を保持できます。\fBjavadoc @argfile\fR次の例に示すように、この引数ファイルには両方のファイルの内容が含まれています。 .RE .PP -\fB例 2\fR -.br -2つの引数ファイル +\fB例 2 \fR2つの引数ファイル .RS 4 次のように、2つの引数ファイルを作成できます。\fBjavadoc\fRコマンドのオプション用に1つ、パッケージ名またはソース・ファイル名用に1つです。次のリストでは行継続文字を使用していません。 .sp @@ -3490,9 +4166,7 @@ doc\-files .\} .RE .PP -\fB例 3\fR -.br -パスを使用した引数ファイル +\fB例 3 \fRパスを使用した引数ファイル .RS 4 引数ファイルはパスを指定できますが、ファイル内のすべてのファイル名は、(\fBpath1\fRや\fBpath2\fRではなく)次のように現在の作業ディレクトリに相対的となります。 .sp @@ -3508,9 +4182,7 @@ doc\-files .\} .RE .PP -\fB例 4\fR -.br -オプション引数 +\fB例 4 \fRオプション引数 .RS 4 次に、\fBjavadoc\fRコマンドのオプションに対する引数を引数ファイルに格納する例を示します。長い引数を指定できるので、\fB\-bottom\fRオプションを使用します。次のようなテキスト引数を含む、bottomという名前のファイルを作成できます。 .sp @@ -3557,12 +4229,9 @@ Java .PP ディレクトリの変更(\fBcd\fRコマンドを使用)または\fB\-sourcepath\fRオプションにより、\fBjavadoc\fRコマンドを実行できます。次の例で両方の選択肢を示します。 .PP -\fB例 1\fR -.br -1つ以上のパッケージから再帰的に実行 +\fB例 1 \fR1つ以上のパッケージから再帰的に実行 .RS 4 -この例では\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の引数に追加します。 +この例では\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の引数に追加します。 .sp .if n \{\ .RS 4 @@ -3576,9 +4245,7 @@ Java .\} .RE .PP -\fB例 2\fR -.br -ルートへの移動および明示的なパッケージの実行 +\fB例 2 \fRルートへの移動および明示的なパッケージの実行 .RS 4 完全修飾されたパッケージの親ディレクトリに移動します。次に、ドキュメント化する1つ以上のパッケージの名前を指定して\fBjavadoc\fRコマンドを実行します。 .sp @@ -3596,9 +4263,7 @@ Java また、他のパッケージ・ツリーを下方にたどるには、j\fBava:javax:org\&.xml\&.sax\fRのように、それらのパッケージの名前を\fB\-subpackages\fRの引数に追加します。 .RE .PP -\fB例 3\fR -.br -1つのツリーの明示的なパッケージの任意のディレクトリから実行 +\fB例 3 \fR1つのツリーの明示的なパッケージの任意のディレクトリから実行 .RS 4 この場合、現在のディレクトリがどこかは問題ではありません。\fBjavadoc\fRコマンドを実行し、最上位パッケージの親ディレクトリを指定して\fB\-sourcepath\fRオプションを使用します。ドキュメント化する1つ以上のパッケージの名前を指定します。 .sp @@ -3614,9 +4279,7 @@ Java .\} .RE .PP -\fB例 4\fR -.br -複数のツリーの明示的なパッケージの任意のディレクトリから実行 +\fB例 4 \fR複数のツリーの明示的なパッケージの任意のディレクトリから実行 .RS 4 \fBjavadoc\fRコマンドを実行し、各ツリーのルートへのパスのコロン区切りリストを指定して\fB\-sourcepath\fRオプションを使用します。ドキュメント化する1つ以上のパッケージの名前を指定します。指定したパッケージのすべてのソース・ファイルが、1つのルート・ディレクトリの下に存在する必要はありませんが、ソース・パスで指定された場所のどこかで見つかる必要があります。 .sp @@ -3637,9 +4300,7 @@ Java .PP また、1つ以上のソース・ファイルを渡して、\fBjavadoc\fRコマンドを実行することもできます。\fBjavadoc\fRは、次の2つの方法のいずれかで実行できます。1つはディレクトリを変更する方法(\fBcd\fRを使用)、もう1つはソース・ファイルへのパスを完全に指定する方法です。相対パスは、現在のディレクトリを起点とします。ソース・ファイルを渡すときは、\fB\-sourcepath\fRオプションは無視されます。アスタリスク(*)のようなコマンド行ワイルドカードを使用すると、クラスのグループを指定できます。 .PP -\fB例 1\fR -.br -ソース・ディレクトリに変更 +\fB例 1 \fRソース・ディレクトリに変更 .RS 4 ソースを保持するディレクトリに変更します。次に、ドキュメント化する1つ以上のソース・ファイルの名前を指定して\fBjavadoc\fRコマンドを実行します。 .sp @@ -3658,9 +4319,7 @@ Java .\} .RE .PP -\fB例 2\fR -.br -パッケージのルート・ディレクトリに変更 +\fB例 2 \fRパッケージのルート・ディレクトリに変更 .RS 4 これは、同じルートからの別のサブパッケージの個々のソース・ファイルをドキュメント化するのに役立ちます。パッケージのルート・ディレクトリに移り、各ソース・ファイルを、ルートからのパスとともに指定します。 .sp @@ -3677,9 +4336,7 @@ Java .\} .RE .PP -\fB例 3\fR -.br -任意のディレクトリからのファイルのドキュメント化 +\fB例 3 \fR任意のディレクトリからのファイルのドキュメント化 .RS 4 この場合、現在のディレクトリがどこかは問題ではありません。ドキュメント化するソース・ファイルへの絶対パス(または現在のディレクトリからの相対パス)を指定して\fBjavadoc\fRコマンドを実行します。 .sp diff --git a/src/solaris/doc/sun/man/man1/ja/javah.1 b/src/solaris/doc/sun/man/man1/ja/javah.1 index c32c1f0ab5ae53cacd456767eca233c4736a82fb..51b8d0a05e144f69d05f09a91bb6e97722b6a8e7 100644 --- a/src/solaris/doc/sun/man/man1/ja/javah.1 +++ b/src/solaris/doc/sun/man/man1/ja/javah.1 @@ -27,7 +27,8 @@ .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "javah" "1" "2013年11月21日" "JDK 8" "基本ツール" @@ -77,7 +78,7 @@ C .PP \fBjavah\fRコマンドは、ネイティブ・メソッドを実装するために必要なCヘッダーとソース・ファイルを生成します。作成されたヘッダーとソース・ファイルは、ネイティブ・ソース・コードからオブジェクトのインスタンス変数を参照するためにCプログラムによって使用されます。\fB\&.h\fRファイルは、対応するクラスと一致する配置を持つ\fBstruct\fR定義を含みます。\fBstruct\fRのフィールドは、クラスのインスタンス変数に対応します。 .PP -ヘッダー・ファイルとその中で宣言される構造体の名前はクラスの名前から派生します。\fBjavah\fRコマンドに渡されるクラスがパッケージの中にある場合、パッケージ名はヘッダー・ファイル名と構造体名の両方の先頭に付加されます。下線(_)が名前の区切り文字として使用されます。 +ヘッダー・ファイルとその中で宣言される構造体の名前はクラスの名前から派生します。\fBjavah\fRコマンドに渡されるクラスがパッケージの中にある場合、パッケージ名はヘッダー・ファイル名と構造体名の両方の先頭に付加されます。アンダースコア(_)が名前の区切り文字として使用されます。 .PP デフォルトでは\fBjavah\fRコマンドは、コマンド行にリストされる各クラスのヘッダー・ファイルを作成し、現在のディレクトリにファイルを置きます。ソース・ファイルを作成するには、\fB\-stubs\fRオプションを使用してください。1つのファイルの中に、リストされたすべてのクラスの結果を連結するには、\fB\-o\fRオプションを使用してください。 .PP diff --git a/src/solaris/doc/sun/man/man1/ja/javap.1 b/src/solaris/doc/sun/man/man1/ja/javap.1 index 68355d53a484bdbbf161d69be07104a3f0d6c75c..6e16d9a5b7b3e781fffa571354bbd3922e6e20dc 100644 --- a/src/solaris/doc/sun/man/man1/ja/javap.1 +++ b/src/solaris/doc/sun/man/man1/ja/javap.1 @@ -27,7 +27,8 @@ .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "javap" "1" "2014年8月8日" "JDK 8" "基本ツール" diff --git a/src/solaris/doc/sun/man/man1/ja/jcmd.1 b/src/solaris/doc/sun/man/man1/ja/jcmd.1 index 5a273ca05d087d3edfcf628b33cf53c6ef45912f..5424e834d5c89e2b14400cac95219b4783af9506 100644 --- a/src/solaris/doc/sun/man/man1/ja/jcmd.1 +++ b/src/solaris/doc/sun/man/man1/ja/jcmd.1 @@ -27,7 +27,8 @@ .\" SectDesc: トラブルシューティング・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jcmd" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" diff --git a/src/solaris/doc/sun/man/man1/ja/jconsole.1 b/src/solaris/doc/sun/man/man1/ja/jconsole.1 index 149f5a1dc1d72c12f60327b2dc5e32a7e165e777..1a4660f30bbd7fb0e160a094022b615907674f6a 100644 --- a/src/solaris/doc/sun/man/man1/ja/jconsole.1 +++ b/src/solaris/doc/sun/man/man1/ja/jconsole.1 @@ -27,7 +27,8 @@ .\" SectDesc: Javaトラブルシューティング、プロファイリング、モニタリングおよび管理ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .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 .RE .SH "説明" .PP -\fBjconsole\fRコマンドは、ローカル・マシンまたはリモート・マシン上のJavaアプリケーションと仮想マシンをモニターおよび管理するグラフィカル・コンソール・ツールを起動します。 +\fBjconsole\fRコマンドは、ローカル・マシンまたはリモート・マシン上のJavaアプリケーションと仮想マシンのモニターと管理を行うグラフィカル・コンソール・ツールを起動します。 .PP Windows上では、\fBjconsole\fRコマンドはコンソール・ウィンドウと関連付けられていません。ただし、\fBjconsole\fRコマンドが失敗すると、エラー情報を示すダイアログ・ボックスが表示されます。 .SH "オプション" @@ -93,7 +94,7 @@ Windows .PP \-notile .RS 4 -最初はウィンドウをタイル表示しません(複数接続の場合)。 +最初にウィンドウをタイル表示しません(複数接続の場合)。 .RE .PP \-pluginpath \fIplugins\fR diff --git a/src/solaris/doc/sun/man/man1/ja/jdb.1 b/src/solaris/doc/sun/man/man1/ja/jdb.1 index fd4bb1fd52838110612d40649939affac7f5bfbf..0b9702e7b8fa85b713b64314d5a5f5bdfe832f81 100644 --- a/src/solaris/doc/sun/man/man1/ja/jdb.1 +++ b/src/solaris/doc/sun/man/man1/ja/jdb.1 @@ -27,7 +27,8 @@ .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jdb" "1" "2013年11月21日" "JDK 8" "基本ツール" @@ -318,7 +319,7 @@ Java HotSpot VM .RS 4 JVMに\fBoption\fRを渡します。optionには、Javaアプリケーション起動ツールのリファレンス・ページに記載されているオプションを1つ指定します。たとえば、\fB\-J\-Xms48m\fRと指定すると、スタートアップ・メモリーは48MBに設定されます。java(1)を参照してください。 .RE -.SH "デバッグ対象のプロセスに転送されるオプション" +.SH "デバッガ・プロセスに転送されるオプション" .PP \-v \-verbose[:\fIclass\fR|gc|jni] .RS 4 diff --git a/src/solaris/doc/sun/man/man1/ja/jdeps.1 b/src/solaris/doc/sun/man/man1/ja/jdeps.1 index 0a9692d67483bc9e9d75f0cd1a677f232fc4ddc7..f2951ef99fb7e06af320dea5edf4a08d2ae74cb0 100644 --- a/src/solaris/doc/sun/man/man1/ja/jdeps.1 +++ b/src/solaris/doc/sun/man/man1/ja/jdeps.1 @@ -27,7 +27,8 @@ .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jdeps" "1" "2013年11月21日" "JDK 8" "基本ツール" @@ -113,7 +114,7 @@ DOT .RS 4 クラス・ファイルの検索場所を指定します。 .sp -Setting the Class Path も参照してください。 +クラス・パスの設定 も参照してください。 .RE .PP \-p <\fIpkg name\fR> diff --git a/src/solaris/doc/sun/man/man1/ja/jhat.1 b/src/solaris/doc/sun/man/man1/ja/jhat.1 index 98fdbf0040bd026d6903a5c13d7c1f1b953e69d6..8f107c526ddce6c1d624bc4b287972aaa84399b8 100644 --- a/src/solaris/doc/sun/man/man1/ja/jhat.1 +++ b/src/solaris/doc/sun/man/man1/ja/jhat.1 @@ -27,7 +27,8 @@ .\" SectDesc: トラブルシューティング・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jhat" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" diff --git a/src/solaris/doc/sun/man/man1/ja/jinfo.1 b/src/solaris/doc/sun/man/man1/ja/jinfo.1 index cb2044b749f26545936e7bd542005c3c1dbd6b00..adb82c7466f8ce3186b1f2c0bc8827a5a545f92f 100644 --- a/src/solaris/doc/sun/man/man1/ja/jinfo.1 +++ b/src/solaris/doc/sun/man/man1/ja/jinfo.1 @@ -27,7 +27,8 @@ .\" SectDesc: トラブルシューティング・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jinfo" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" @@ -115,7 +116,7 @@ jinfo \- .RE .SH "説明" .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。 .PP このユーティリティはサポート対象外であり、将来のJDKのリリースでは利用できなくなる可能性があります。\fBdbgeng\&.dll\fRが存在していないWindowsシステムでは、Debugging Tools For Windowsをインストールしないとこれらのツールが正常に動作しません。\fBPATH\fR環境変数には、ターゲット・プロセスによって使用されるjvm\&.dllの場所、またはクラッシュ・ダンプ・ファイルが生成された場所が含まれるようにしてください。たとえば、\fBset PATH=%JDK_HOME%\ejre\ebin\eclient;%PATH%\fRです。 diff --git a/src/solaris/doc/sun/man/man1/ja/jjs.1 b/src/solaris/doc/sun/man/man1/ja/jjs.1 index b99a6406967050179796b983a41d08654c36429b..88d636820e2c155ab0b6482fc88844ce0c778b7e 100644 --- a/src/solaris/doc/sun/man/man1/ja/jjs.1 +++ b/src/solaris/doc/sun/man/man1/ja/jjs.1 @@ -23,14 +23,15 @@ .\" .\" Title: jjs .\" Language: Japanese -.\" Date: 2013年11月21日 +.\" Date: 2015年3月3日 .\" SectDesc: 基本ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 -.TH "jjs" "1" "2013年11月21日" "JDK 8" "基本ツール" +.TH "jjs" "1" "2015年3月3日" "JDK 8" "基本ツール" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -113,7 +114,7 @@ jjs \- Nashorn .PP \-cp \fIpath\fR .br -\-\-classpath \fIpath\fR +\-classpath \fIpath\fR .RS 4 サポートするクラスへのパスを指定します。複数のパスを設定するには、このオプションを繰り返すか、または各パスをコロン(:)で区切ります。 .RE @@ -221,6 +222,11 @@ jjs \- Nashorn このオプションを繰り返し使用すると、複数の\fBjava\fRコマンド・オプションを渡すことができます。 .RE .PP +\-\-language=[es5] +.RS 4 +ECMAScript言語バージョンを指定します。デフォルトのバージョンはES5です。 +.RE +.PP \-\-lazy\-compilation .RS 4 レイジー・コード生成戦略(つまり、スクリプト全体が一度にコンパイルされない)を有効にします。このオプションは試験的なものです。 @@ -240,13 +246,17 @@ jjs \- Nashorn .\} .nf \fB\-\-log=fields:finest,codegen:info\fR - .fi .if n \{\ .RE .\} .RE .PP +\-\-optimistic\-types=[true|false] +.RS 4 +再コンパイルの最適化を解除してオプティミスティック・タイプ仮定を有効または無効にします。オプティミスティック・タイプを使用した実行によって最終的な速度が向上しますが、ウォームアップ時間が増える場合があります。 +.RE +.PP \-\-package=\fIname\fR .RS 4 生成されたクラス・ファイルを追加するパッケージを指定します。 @@ -323,7 +333,7 @@ jjs \- Nashorn .br \-timezone=\fIzone\fR .RS 4 -スクリプトの実行に対し指定したタイム・ゾーンを設定します。OSで設定されたタイム・ゾーンをオーバーライドし、\fBDate\fRオブジェクトで使用されます。 +スクリプトの実行に対し指定したタイムゾーンを設定します。OSで設定されたタイムゾーンをオーバーライドし、\fBDate\fRオブジェクトで使用されます。 .RE .PP \-tcs=\fIparameter\fR @@ -366,9 +376,7 @@ Nashorn .RE .SH "例" .PP -\fB例 1\fR -.br -Nashornを使用したスクリプトの実行 +\fB例 1 \fRNashornを使用したスクリプトの実行 .RS 4 .sp .if n \{\ @@ -383,9 +391,7 @@ Nashorn .\} .RE .PP -\fB例 2\fR -.br -対話型モードでのNashornの実行 +\fB例 2 \fR対話型モードでのNashornの実行 .RS 4 .sp .if n \{\ @@ -404,9 +410,7 @@ Nashorn .\} .RE .PP -\fB例 3\fR -.br -Nashornへの引数の渡し +\fB例 3 \fRNashornへの引数の渡し .RS 4 .sp .if n \{\ diff --git a/src/solaris/doc/sun/man/man1/ja/jmap.1 b/src/solaris/doc/sun/man/man1/ja/jmap.1 index c0c1fcdcd1b355f8dc67ff74a39ab06fb3e521bc..48320f2e7c64e8a621ad22358ab6fae23d7e3f57 100644 --- a/src/solaris/doc/sun/man/man1/ja/jmap.1 +++ b/src/solaris/doc/sun/man/man1/ja/jmap.1 @@ -27,7 +27,8 @@ .\" SectDesc: トラブルシューティング・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jmap" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" diff --git a/src/solaris/doc/sun/man/man1/ja/jps.1 b/src/solaris/doc/sun/man/man1/ja/jps.1 index 06b4abec4839605e95c87a7af687dc2a91b878d9..99783f408f79e120ee28498daed75733422c224e 100644 --- a/src/solaris/doc/sun/man/man1/ja/jps.1 +++ b/src/solaris/doc/sun/man/man1/ja/jps.1 @@ -27,7 +27,8 @@ .\" SectDesc: モニタリング・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jps" "1" "2013年11月21日" "JDK 8" "モニタリング・ツール" diff --git a/src/solaris/doc/sun/man/man1/ja/jrunscript.1 b/src/solaris/doc/sun/man/man1/ja/jrunscript.1 index a7082b97c37e5fa959d605f57091ffc67d7189ed..958e8ba8ee4ceae0fe3882ef8246d6ab9fcbe72a 100644 --- a/src/solaris/doc/sun/man/man1/ja/jrunscript.1 +++ b/src/solaris/doc/sun/man/man1/ja/jrunscript.1 @@ -27,7 +27,8 @@ .\" SectDesc: スクリプティング・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jrunscript" "1" "2013年11月21日" "JDK 8" "スクリプティング・ツール" @@ -86,7 +87,7 @@ jrunscript \- \-cp \fIpath\fR .RS 4 \fB\-classpath\fR -\fBpath\fRと同じです。 +\fIpath\fRと同じです。 .RE .PP \-D\fIname\fR=\fIvalue\fR @@ -96,7 +97,7 @@ Java .PP \-J\fIflag\fR .RS 4 -\fBflag\fRを、\fBjrunscript\fRコマンドが実行されているJava Virtual Machineに直接渡します。 +\fBflag\fRを、\fBjrunscript\fRコマンドが実行されているJava仮想マシンに直接渡します。 .RE .PP \-I \fIlanguage\fR diff --git a/src/solaris/doc/sun/man/man1/ja/jsadebugd.1 b/src/solaris/doc/sun/man/man1/ja/jsadebugd.1 index cb19efa749ef9eff5a22b241f467cd1a3c28e1d2..0b1988a7143727cb33839ebeb87ffc6050cef180 100644 --- a/src/solaris/doc/sun/man/man1/ja/jsadebugd.1 +++ b/src/solaris/doc/sun/man/man1/ja/jsadebugd.1 @@ -27,7 +27,8 @@ .\" SectDesc: トラブルシューティング・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jsadebugd" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" @@ -95,7 +96,7 @@ jsadebugd \- Java .RE .SH "説明" .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 .if n \{\ .RS 4 diff --git a/src/solaris/doc/sun/man/man1/ja/jstack.1 b/src/solaris/doc/sun/man/man1/ja/jstack.1 index c2486f8819fdfc7255a958294fa4aed3ef3a6b70..6c302c0190098ab8cba28e913c9a642157051666 100644 --- a/src/solaris/doc/sun/man/man1/ja/jstack.1 +++ b/src/solaris/doc/sun/man/man1/ja/jstack.1 @@ -27,7 +27,8 @@ .\" SectDesc: トラブルシューティング・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jstack" "1" "2013年11月21日" "JDK 8" "トラブルシューティング・ツール" @@ -115,7 +116,7 @@ jstack \- Java .RE .SH "説明" .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)。 .PP \fB注意\fR diff --git a/src/solaris/doc/sun/man/man1/ja/jstat.1 b/src/solaris/doc/sun/man/man1/ja/jstat.1 index 9528b6fbdbbe5349a611e1b855977b370bfd8c71..d47a29fa7a6a368b3a756d432768b603d552bbe1 100644 --- a/src/solaris/doc/sun/man/man1/ja/jstat.1 +++ b/src/solaris/doc/sun/man/man1/ja/jstat.1 @@ -23,14 +23,15 @@ .\" .\" Title: jstat .\" Language: Japanese -.\" Date: 2011年5月10日 +.\" Date: 2015年3月3日 .\" SectDesc: モニタリング・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 -.TH "jstat" "1" "2011年5月10日" "JDK 8" "モニタリング・ツール" +.TH "jstat" "1" "2015年3月3日" "JDK 8" "モニタリング・ツール" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -276,6 +277,10 @@ Java HotSpot VM Just\-in\-Time .sp \fBMU\fR: メタスペースの使用率(KB)。 .sp +\fBCCSC\fR: 圧縮されたクラス領域の容量(KB)。 +.sp +\fBCCSU\fR: 使用されている圧縮されたクラス領域(KB)。 +.sp \fBYGC\fR: 若い世代のガベージ・コレクション・イベントの数。 .sp \fBYGCT\fR: 若い世代のガベージ・コレクション時間。 @@ -317,6 +322,12 @@ Java HotSpot VM Just\-in\-Time .sp \fBMC\fR: メタスペースの容量(KB)。 .sp +\fBCCSMN\fR: 圧縮されたクラス領域の最小容量(KB)。 +.sp +\fBCCSMX\fR: 圧縮されたクラス領域の最大容量(KB)。 +.sp +\fBCCSC\fR: 圧縮されたクラス領域の容量(KB)。 +.sp \fBYGC\fR: 若い世代のGCイベント数。 .sp \fBFGC\fR: フルGCイベント数。 @@ -326,11 +337,9 @@ Java HotSpot VM Just\-in\-Time .RS 4 このオプションは、\fB\-gcutil\fRオプションと同じガベージ・コレクション統計データのサマリーを表示しますが、最後のガベージ・コレクション・イベントと(適用可能な場合は)現在のガベージ・コレクション・イベントの原因が含まれます。\fB\-gcutil\fRで一覧表示される列のほか、このオプションでは次の列が追加されます。 .sp -ガベージ・コレクション・イベントを含むガベージ・コレクション統計データ。 -.sp -\fBLGCC\fR: 最後のガベージ・コレクションの原因。 +\fBLGCC\fR: 最後のガベージ・コレクションの原因 .sp -\fBGCC\fR: 現在のガベージ・コレクションの原因。 +\fBGCC\fR: 現在のガベージ・コレクションの原因 .RE .PP \-gcnew \fIoption\fR @@ -364,7 +373,7 @@ New .RS 4 New世代領域サイズの統計データ。 .sp -NGCMN: New世代の最小容量(KB)。 +\fBNGCMN\fR: New世代の最小容量(KB)。 .sp \fBNGCMX\fR: New世代の最大容量(KB)。 .sp @@ -395,6 +404,10 @@ Old .sp \fBMU\fR: メタスペースの使用率(KB)。 .sp +\fBCCSC\fR: 圧縮されたクラス領域の容量(KB)。 +.sp +\fBCCSU\fR: 使用されている圧縮されたクラス領域(KB)。 +.sp \fBOC\fR: Old領域の現在の容量(KB)。 .sp \fBOU\fR: Old領域の使用率(KB)。 @@ -439,6 +452,10 @@ Permanent .sp \fBMC\fR: メタスペースの容量(KB)。 .sp +\fBCCSMN\fR: 圧縮されたクラス領域の最小容量(KB)。 +.sp +\fBCCSMX\fR: 圧縮されたクラス領域の最大容量(KB)。 +.sp \fBYGC\fR: 若い世代のGCイベント数。 .sp \fBFGC\fR: フルGCイベント数。 @@ -462,6 +479,8 @@ Permanent .sp \fBM\fR: メタスペースの使用率(領域の現在の容量に対するパーセンテージ)。 .sp +\fBCCS\fR: 圧縮されたクラス領域の使用率(パーセンテージ)。 +.sp \fBYGC\fR: 若い世代のGCイベント数。 .sp \fBYGCT\fR: 若い世代のガベージ・コレクション時間。 @@ -493,29 +512,28 @@ Java HotSpot VM .PP この例では、lvmid 21891に接続して、250ミリ秒間隔で7つのサンプルを取得し、\-\fBgcutil\fRオプションでの指定に従って出力を表示します。 .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 .if n \{\ .RS 4 .\} .nf \fBjstat \-gcutil 21891 250 7\fR -\fB S0 S1 E O M 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 -\fB0\&.00 99\&.74 13\&.49 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR -\fB0\&.00 99\&.74 13\&.49 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR -\fB0\&.00 99\&.74 13\&.49 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR -\fB0\&.00 99\&.74 13\&.80 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR -\fB0\&.00 99\&.74 13\&.80 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR -\fB0\&.00 99\&.74 13\&.80 7\&.86 95\&.82 3 0\&.124 0 0\&.000 0\&.124\fR - +\fB S0 S1 E O M CCS YGC YGCT FGC FGCT GCT \fR +\fB 0\&.00 97\&.02 70\&.31 66\&.80 95\&.52 89\&.14 7 0\&.300 0 0\&.000 0\&.300\fR +\fB 0\&.00 97\&.02 86\&.23 66\&.80 95\&.52 89\&.14 7 0\&.300 0 0\&.000 0\&.300\fR +\fB 0\&.00 97\&.02 96\&.53 66\&.80 95\&.52 89\&.14 7 0\&.300 0 0\&.000 0\&.300\fR +\fB 91\&.03 0\&.00 1\&.98 68\&.19 95\&.89 91\&.24 8 0\&.378 0 0\&.000 0\&.378\fR +\fB 91\&.03 0\&.00 15\&.82 68\&.19 95\&.89 91\&.24 8 0\&.378 0 0\&.000 0\&.378\fR +\fB 91\&.03 0\&.00 17\&.80 68\&.19 95\&.89 91\&.24 8 0\&.378 0 0\&.000 0\&.378\fR +\fB 91\&.03 0\&.00 17\&.80 68\&.19 95\&.89 91\&.24 8 0\&.378 0 0\&.000 0\&.378\fR .fi .if n \{\ .RE .\} .SS "列ヘッダー文字列の繰返し" .PP -この例では、lvmid 21891に接続して、250ミリ秒間隔でサンプルを取得し、\fB\-gcutil\fRオプションでの指定に従って出力を表示します。さらに、\fB\-h3\fRオプションを使用して、データが3行表示されるごとに列ヘッダーを出力します。 +この例では、lvmid 21891に接続して、250ミリ秒間隔でサンプルを取得し、\fB\-gcnew\fRオプションでの指定に従って出力を表示します。さらに、\fB\-h3\fRオプションを使用して、データが3行表示されるごとに列ヘッダーを出力します。 .PP この例では、ヘッダー文字列の繰返しが表示されているほか、2番目と3番目のサンプル間でYoung GCが行われたことがわかります。この継続時間は0\&.001秒でした。このコレクションでは、Survivor領域0の使用率(S0U)が適切なSurvivorサイズ(DSS)を超過することになるアクティブ・データが検出されました。この結果、オブジェクトは、Old世代(この出力には非表示)へ昇格され、殿堂入りしきい値(TT)が、31から2へ降格されました。 .PP @@ -545,7 +563,7 @@ Java HotSpot VM .PP この例では、lvmid21891へ接続し、250ミリ秒間隔で3つのサンプルを取得しています。\fB\-t\fRオプションを使用して、最初の列にサンプルごとのタイムスタンプを表示しています。 .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 .if n \{\ .RS 4 @@ -564,7 +582,7 @@ Timestamp .PP この例は、\fB\-gcutil\fRオプションを使用して、remote\&.domainというシステム上のlvmid 40496に接続し、サンプルを秒単位で無期限に取得しています。 .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 .if n \{\ .RS 4 diff --git a/src/solaris/doc/sun/man/man1/ja/jstatd.1 b/src/solaris/doc/sun/man/man1/ja/jstatd.1 index 66be86783e53b9da46bb8f61aee93a9cc822027f..42e94e633bc327ecbdee8669660e38106042eec8 100644 --- a/src/solaris/doc/sun/man/man1/ja/jstatd.1 +++ b/src/solaris/doc/sun/man/man1/ja/jstatd.1 @@ -27,7 +27,8 @@ .\" SectDesc: モニタリング・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jstatd" "1" "2013年11月21日" "JDK 8" "モニタリング・ツール" diff --git a/src/solaris/doc/sun/man/man1/ja/jvisualvm.1 b/src/solaris/doc/sun/man/man1/ja/jvisualvm.1 index d8cf68514b37be9f41cb727dd8ea56006953acf4..0f4043dfc2f3cb3e9ba2ca97bec305367acb410b 100644 --- a/src/solaris/doc/sun/man/man1/ja/jvisualvm.1 +++ b/src/solaris/doc/sun/man/man1/ja/jvisualvm.1 @@ -27,7 +27,8 @@ .\" SectDesc: Javaトラブルシューティング、プロファイリング、モニタリングおよび管理ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "jvisualvm" "1" "2013年11月21日" "JDK 8" "Javaトラブルシューティング、プロファイリング、モニタリン" @@ -51,7 +52,7 @@ .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "名前" -jvisualvm \- Javaアプリケーションを視覚的にモニターし、トラブルシューティングとプロファイリングを行います。 +jvisualvm \- Javaアプリケーションを視覚的にモニター、トラブルシュートおよびプロファイルします。 .SH "概要" .sp .if n \{\ diff --git a/src/solaris/doc/sun/man/man1/ja/keytool.1 b/src/solaris/doc/sun/man/man1/ja/keytool.1 index fdfc6903c7e85426b85a6359918496b2d4e4f818..c80a82755f1bf54e83658af43a3dd76ab8bf4edc 100644 --- a/src/solaris/doc/sun/man/man1/ja/keytool.1 +++ b/src/solaris/doc/sun/man/man1/ja/keytool.1 @@ -23,14 +23,15 @@ .\" .\" Title: keytool .\" Language: Japanese -.\" Date: 2013年8月6日 +.\" Date: 2015年3月3日 .\" SectDesc: セキュリティ・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 -.TH "keytool" "1" "2013年8月6日" "JDK 8" "セキュリティ・ツール" +.TH "keytool" "1" "2015年3月3日" "JDK 8" "セキュリティ・ツール" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -375,7 +376,7 @@ keytool \- .sp -1 .IP \(bu 2.3 .\} -イタリック体になっていないすべての項目、または中カッコか角カッコで囲まれているすべての項目は、そのとおりに指定する必要があります。 +イタリックになっていないすべての項目、または中カッコか角カッコで囲まれているすべての項目は、そのとおりに指定する必要があります。 .RE .sp .RS 4 @@ -408,11 +409,19 @@ keytool \- .sp -1 .IP \(bu 2.3 .\} -イタリック体の項目の実際の値(オプションの値)は、指定する必要があります。たとえば、\fB\-printcert\fRコマンドの形式は次のとおりです。 +イタリックの項目の実際の値(オプションの値)は、指定する必要があります。たとえば、\fB\-printcert\fRコマンドの形式は次のとおりです。 .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 -\fB\-printcert\fRコマンドを指定する場合は、\fBcert_file\fRを実際のファイル名で置き換えます。例: +\fB\-printcert\fRコマンドを指定する場合は、\fIcert_file\fRを実際のファイル名で置き換えます。例: \fBkeytool \-printcert \-file VScert\&.cer\fR .RE .sp @@ -624,8 +633,7 @@ EKU SANまたはSubjectAlternativeName .RS 4 \fB値\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の文字列形式の値です。 +\fBtype\fR:\fBvalue\fR(t\fBype:value\fR)*、\fBtype\fRには\fBEMAIL\fR、\fBURI\fR、\fBDNS\fR、\fBIP\fRまたは\fBOID\fRを指定できます。\fBvalue\fR引数は、\fBtype\fRの文字列形式の値です。 .RE .PP IANまたはIssuerAlternativeName @@ -662,8 +670,66 @@ AIA .PP \-gencert .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 +.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 \fB\-certreq\fRコマンドで作成可能)に対するレスポンスとして証明書を生成します。このコマンドは、\fIinfile\fRから(省略した場合は、標準入力から)リクエストを読み込み、別名の秘密鍵を使用してそのリクエストに署名して、X\&.509証明書を\fIoutfile\fRに(省略した場合は、標準出力に)出力します。\fB\-rfc\fRを指定した場合、出力形式はBASE64符号化のPEMになります。それ以外の場合は、バイナリDERが作成されます。 .sp @@ -724,8 +790,66 @@ AIA .PP \-genkeypair .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 +.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で特定される新しいキーストア・エントリに格納されます。 .sp \fBkeyalg\fR値は鍵ペアの生成に使用するアルゴリズムを、\fBkeysize\fR値は生成する各鍵のサイズを、それぞれ指定します。\fBsigalg\fR値は、自己署名証明書に署名を付けるために使用するアルゴリズムを指定します。このアルゴリズムは\fBkeyalg\fR値と互換性がある必要があります。 @@ -758,7 +882,7 @@ AIA .if n \{\ .RE .\} -2番目の形式では、ユーザーは、年/月/日と時間:分:秒の2つの部分からなる正確な発行時刻を設定します(ローカルのタイム・ゾーンを使用)。ユーザーは、1つの部分のみを指定できます。これは、もう1つの部分は現在の日付(または時刻)と同じになるということです。ユーザーは、形式の定義に示されているように、桁数を厳密に指定する必要があります(短い場合は0で埋めます)。日付と時刻の両方が指定された状態で、2つの部分の間に空白文字が1つ(1つのみ)あります。時間は常に24時間形式で指定してください。 +2番目の形式では、ユーザーは、年/月/日と時間:分:秒の2つの部分で厳密な開始時刻を設定します(地元の時間帯を使用)。ユーザーは、1つの部分のみを指定できます。これは、もう1つの部分は現在の日付(または時刻)と同じになるということです。ユーザーは、形式の定義に示されているように、桁数を厳密に指定する必要があります(短い場合は0で埋めます)。日付と時刻の両方が指定された状態で、2つの部分の間に空白文字が1つ(1つのみ)あります。時間は常に24時間形式で指定してください。 .sp オプションを指定しないと、開始日付は現在の時刻になります。オプションは、最大で1回指定できます。 .sp @@ -769,8 +893,46 @@ AIA .PP \-genseckey .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 +.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で特定される)内に格納します。 .sp \fBkeyalg\fR値は鍵ペアの生成に使用するアルゴリズムを、\fBkeysize\fR値は生成する各鍵のサイズを、それぞれ指定します。\fBkeypass\fR値は、秘密鍵を保護するパスワードです。パスワードを指定しなかった場合は、パスワードの入力を求められます。このとき、[Return]キーを押すと、\fBkeystore\fRのパスワードと同じパスワードが鍵のパスワードに設定されます。\fBkeypass\fR値は、6文字以上にする必要があります。 @@ -778,8 +940,56 @@ AIA .PP \-importcert .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 +.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から証明書または証明書チェーンを読み込みます。 .sp \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 .PP \-importpassword .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 -パスフレーズをインポートし、\fBalias\fRで識別される新規\fBKeyStore\&.SecretKeyEntry\fRに格納します。パスフレーズは、標準入力ストリームを介して提供できます。または、ユーザーにそのプロンプトが表示されます。\fBkeypass\fRは、インポートされるパスフレーズの保護に使用されるパスワードです。パスワードを指定しなかった場合は、パスワードの入力を求められます。このとき、[Return]キーを押すと、\fBkeystore\fRのパスワードと同じパスワードが鍵のパスワードに設定されます。\fBkeypass\fRは、6文字以上にする必要があります。 -.RE -.PP -\-importkeystore +.if n \{\ .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 -ソース・キーストアからターゲット・キーストアへ、単一のエントリまたはすべてのエントリをインポートします。 -.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 -ターゲット別名がターゲット・キーストア内にすでに存在していた場合、ユーザーは、そのエントリを上書きするか、あるいは異なる別名の下で新しいエントリを作成するかの選択を求められます。 +.\} +.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 +.fi +.if n \{\ +.RE +.\} .sp - -\fB\-noprompt\fRオプションを指定した場合、ユーザーは新しいターゲット別名の入力を求められません。既存のエントリがそのターゲット別名で上書きされます。インポートできないエントリはスキップされ、警告が出力されます。 +.if n \{\ +.RS 4 +.\} +.nf +\fB[\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR +.fi +.if n \{\ .RE -.PP -\-printcertreq +.\} +.sp +.if n \{\ .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 -PKCS#10形式の証明書リクエストの内容を出力します。このリクエストは、\fBkeytool\fR -\fB\-certreq\fRコマンドで生成できます。このコマンドは、ファイルからリクエストを読み取ります。ファイルが存在しない場合、リクエストは標準入力から読み取られます。 +.if n \{\ +.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 .PP -\-certreq +\-importkeystore .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 -PKCS#10形式を使用して証明書署名リクエスト(CSR)を生成します。 -.sp -CSRは、証明書発行局(CA)に送信することを目的としたものです。CAは、証明書要求者を(通常はオフラインで)認証し、証明書または証明書チェーンを送り返します。この証明書または証明書チェーンは、キーストア内の既存の証明書チェーン(最初は1つの自己署名証明書から構成される)に置き換えて使用します。 +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-srcstoretype \fR\fB\fIsrcstoretype\fR\fR\fB} {\-deststoretype \fR\fB\fIdeststoretype\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} .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 \fBsigalg\fR値には、CSRに署名を付けるときに使用するアルゴリズムを指定します。 .sp @@ -839,8 +1221,46 @@ CA .PP \-exportcert .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 +.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に証明書が出力されます。 .sp デフォルトでは、証明書はバイナリ符号化で出力されます。\fB\-rfc\fRオプションが指定されている場合、出力可能符号化方式の出力はインターネットRFC 1421証明書符号化規格で定義されます。 @@ -852,8 +1272,46 @@ CA .PP \-list .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 +.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が指定されていない場合は、キーストア全体の内容が表示されます。 .sp このコマンドは、デフォルトでは証明書のSHA1フィンガープリントを表示します。 @@ -864,8 +1322,26 @@ CA .PP \-printcert .RS 4 -\fB{\-file cert_file | \-sslserver host[:port]} {\-jarfile JAR_file {\-rfc} {\-v} {\-Jjavaoption}\fR .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から証明書を読み込みます。 .sp \fB\-rfc\fRが指定されている場合、\fBkeytool\fRコマンドは、インターネットRFC 1421証明書符号化標準で定義されているように、PEMモードで証明書を出力します。インターネットRFC 1421証明書符号化規格を参照してください。 @@ -881,8 +1357,16 @@ SSL .PP \-printcrl .RS 4 -\fB\-file crl_ {\-v}\fR .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を生成します。 .sp \fB注意:\fR @@ -891,15 +1375,91 @@ SSL .PP \-storepasswd .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 +.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文字以上である必要があります。 .RE .PP \-keypasswd .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 +.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文字以上である必要があります。 .sp コマンド行で\fB\-keypass\fRオプションを指定しておらず、鍵のパスワードがキーストアのパスワードと異なる場合は、鍵のパスワードの入力を求められます。 @@ -909,15 +1469,91 @@ SSL .PP \-delete .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 +.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によって特定されるエントリをキーストアから削除します。コマンド行で別名を指定しなかった場合は、別名の入力を求められます。 .RE .PP \-changealias .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 +.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(指定された場合)がまず試みられます。その試みが失敗すると、ユーザーはパスワードの入力を求められます。 .RE .PP @@ -971,7 +1607,7 @@ SSL 以降では、オプションを指定しないで\fB\-genkeypair\fRコマンドを実行したものとして例を示します。情報の入力を求められた場合は、最初に示した\fB\-genkeypair\fRコマンドの値を入力したものとします。たとえば識別名には\fBcn=Mark Jones\fR、\fBou=Java\fR、\fBo=Oracle\fR、\fBc=US\fRと指定します。 .SS "CAからの署名付き証明書のリクエスト" .PP -自己署名証明書を作成する鍵のペアの生成。証明書に証明書発行局(CA)の署名が付いていれば、他のユーザーから証明書が信頼される可能性も高くなります。CAの署名を取得するには、まず、証明書署名リクエスト(CSR)を生成します。たとえば、次のようにします。 +自己署名証明書を作成する鍵のペアの生成。証明書に認証局(CA)の署名が付いていれば、他のユーザーから証明書が信頼される可能性も高くなります。CAの署名を取得するには、まず、証明書署名リクエスト(CSR)を生成します。たとえば、次のようにします。 .sp .if n \{\ .RS 4 @@ -1015,7 +1651,7 @@ CA .PP \fBcacerts\fRキーストア・ファイルは、いくつかのVeriSignルートCA証明書を含んだ状態で出荷されているので、VeriSignの証明書を、信頼できる証明書としてキーストア内にインポートする必要がない場合があります。ただし、他のCAに対して署名付き証明書をリクエストしていて、このCAの公開鍵を認証する証明書が、\fBcacerts\fRにまだ追加されていない場合は、該当するCAからの証明書を、「信頼できる証明書」としてインポートする必要があります。 .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 証明書が有効であると信頼する場合は、次のコマンドでキーストアに追加できます。 .sp @@ -1182,7 +1818,7 @@ ABCCA\&.cer .if n \{\ .RE .\} -パスワードが、\fBdukekeypasswd\fRから\fBnewpass\fRに変更されます。テストを目的とする場合、または安全であることがわかっているシステムで実行する場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。必要なパスワードのオプションをコマンド行で指定しなかった場合は、パスワードの入力を求められます。 +パスワードが、\fBdukekeypasswd\fRから\fBnewpass\fRに変更されます。テスト目的の場合、またはセキュアなシステムを使用している場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。必要なパスワードのオプションをコマンド行で指定しなかった場合は、パスワードの入力を求められます。 .RE .PP キーストアの実装 @@ -1260,9 +1896,9 @@ Java .sp \fBエンティティ\fR: エンティティは、人、組織、プログラム、コンピュータ、企業、銀行など、一定の度合いで信頼の対象となる様々なものを指します。 .sp -公開鍵暗号化では、ユーザーの公開鍵にアクセスする必要があります。大規模なネットワーク環境では、互いに通信しているエンティティ間で以前の関係が引続き確立されていると仮定したり、使用されているすべての公開鍵を収めた信頼できるリポジトリが存在すると仮定したりすることは不可能です。このような公開鍵の配布に関する問題を解決するために証明書が考案されました。現在では、証明書発行局(CA)が信頼できる第三者として機能します。CAは、他のエンティティの証明書に署名する(発行する)行為を、信頼して任されているエンティティ(企業など)です。CAは法律上の契約に拘束されるので、有効かつ信頼できる証明書のみを作成するものとして扱われます。VeriSign、Thawte、Entrustをはじめ、多くの公的な証明書発行局が存在します。 +公開鍵暗号化では、ユーザーの公開鍵にアクセスする必要があります。大規模なネットワーク環境では、互いに通信しているエンティティ間で以前の関係が引続き確立されていると仮定したり、使用されているすべての公開鍵を収めた信頼できるリポジトリが存在すると仮定したりすることは不可能です。このような公開鍵の配布に関する問題を解決するために証明書が考案されました。現在では、認証局(CA)が信頼できる第三者として機能します。CAは、他のエンティティの証明書に署名する(発行する)行為を、信頼して任されているエンティティ(企業など)です。CAは法律上の契約に拘束されるので、有効かつ信頼できる証明書のみを作成するものとして扱われます。VeriSign、Thawte、Entrustをはじめ、多くの公的な認証局が存在します。 .sp -Microsoftの認証サーバー、EntrustのCA製品などを所属組織内で利用すれば、独自の証明書発行局を運営することも可能です。\fBkeytool\fRコマンドを使用すると、証明書の表示、インポートおよびエクスポートを行うことができます。また、自己署名証明書を生成することもできます。 +Microsoftの認証サーバー、EntrustのCA製品などを所属組織内で利用すれば、独自の認証局を運営することも可能です。\fBkeytool\fRコマンドを使用すると、証明書の表示、インポートおよびエクスポートを行うことができます。また、自己署名証明書を生成することもできます。 .sp 現在、\fBkeytool\fRコマンドはX\&.509証明書を対象にしています。 .RE @@ -1312,7 +1948,7 @@ X\&.509 Version 3 .sp 鍵を初めて作成すると、自己署名証明書という1つの要素のみを含むチェーンが開始されます。コマンドの\fB\-genkeypair\fRを参照してください。自己署名証明書は発行者(署名者)が主体と同じです。主体は、その公開鍵が証明書によって認証されるエンティティです。\fB\-genkeypair\fRコマンドを呼び出して新しい公開鍵と秘密鍵のペアを作成すると、公開鍵は常に自己署名証明書でラップされます。 .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 CAの公開鍵を認証する証明書は、多くの場合、自己署名証明書(つまりCAが自身の公開鍵を認証した証明書)であり、これはチェーンの最初の証明書になります。場合によっては、CAが証明書のチェーンを返すこともあります。この場合、チェーン内の最後の証明書(CAによって署名され、鍵エントリの公開鍵を認証する証明書)に変わりはありませんが、チェーン内のその前の証明書は、CSRの送信先のCAとは別のCAによって署名され、CSRの送信先のCAの公開鍵を認証する証明書になります。チェーン内のその前の証明書は、次のCAの鍵を認証する証明書になります。以下同様に、自己署名された「ルート」証明書に達するまでチェーンが続きます。したがって、チェーン内の(最初の証明書以後の)各証明書では、チェーン内の次の証明書の署名者の公開鍵が認証されていることになります。 .sp @@ -1399,7 +2035,7 @@ X\&.500 .if n \{\ .RE .\} -イタリック体の項目は、実際に指定する値を表します。短縮形のキーワードの意味は、次のとおりです。 +イタリックの項目は、実際に指定する値を表します。短縮形のキーワードの意味は、次のとおりです。 .sp .if n \{\ .RS 4 @@ -1527,7 +2163,7 @@ Oracle Solaris 証明書をインポートする前に\fB\-printcert\fRコマンドを実行する必要はありません。キーストア内の信頼できる証明書のリストに証明書を追加する前に、\fB\-importcert\fRコマンドによって証明書の情報が表示され、確認を求めるメッセージが表示されるためです。ユーザーはインポート操作を停止できます。ただし、これを実行できるのは、\fB\-noprompt\fRオプションを指定せずに\fB\-importcert\fRコマンドを呼び出す場合のみです。\fB\-noprompt\fRオプションが指定されている場合、ユーザーとの対話は行われません。 .SS "パスワード警告" .PP -キーストアに対する操作を行うほとんどのコマンドでは、ストアのパスワードが必要です。また、一部のコマンドでは、非公開/秘密鍵のパスワードが必要になることがあります。パスワードはコマンド行で指定できます(\fB\-storepass\fRオプションと\fB\-keypass\fRオプションを使用)。ただし、テストを目的とする場合、または安全であることがわかっているシステムで実行する場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。必要なパスワードのオプションをコマンド行で指定しなかった場合は、パスワードの入力を求められます。 +キーストアに対する操作を行うほとんどのコマンドでは、ストアのパスワードが必要です。また、一部のコマンドでは、非公開/秘密鍵のパスワードが必要になることがあります。パスワードはコマンド行で指定できます(\fB\-storepass\fRオプションと\fB\-keypass\fRオプションを使用)。ただし、テスト目的の場合、またはセキュアなシステムを使用している場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。必要なパスワードのオプションをコマンド行で指定しなかった場合は、パスワードの入力を求められます。 .SS "証明書の準拠に関する警告" .PP インターネット標準RFC 5280では、X\&.509証明書の準拠に関するプロファイルが定義されており、証明書のフィールドおよびエクステンションに有効な値および値の組合せが記載されています。標準については、 diff --git a/src/solaris/doc/sun/man/man1/ja/native2ascii.1 b/src/solaris/doc/sun/man/man1/ja/native2ascii.1 index 9fcb7d6801732490cf9699961a50d00f6ecad2d3..895507fa836d6de23b466815326a078f5174fb59 100644 --- a/src/solaris/doc/sun/man/man1/ja/native2ascii.1 +++ b/src/solaris/doc/sun/man/man1/ja/native2ascii.1 @@ -27,7 +27,8 @@ .\" SectDesc: 国際化ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "native2ascii" "1" "2013年11月21日" "JDK 8" "国際化ツール" diff --git a/src/solaris/doc/sun/man/man1/ja/orbd.1 b/src/solaris/doc/sun/man/man1/ja/orbd.1 index b91dfd9fb3d830bc6cb1b15d59343dcabb80eb45..6c07bd81a8b4ba3ca38501ebea85d7421b88d619 100644 --- a/src/solaris/doc/sun/man/man1/ja/orbd.1 +++ b/src/solaris/doc/sun/man/man1/ja/orbd.1 @@ -27,7 +27,8 @@ .\" SectDesc: Java IDLおよびRMI-IIOPツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "orbd" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール" @@ -117,7 +118,7 @@ ORBD .PP \-serverPollingTime \fImilliseconds\fR .RS 4 -\fBservertool\fRを使用して登録された永続サーバーのヘルス状態をORBDがチェックする間隔を指定します。デフォルト値は1000ミリ秒です。\fBmilliseconds\fRに指定する値は、有効な正の整数にする必要があります。 +\fBservertool\fRを使用して登録された永続サーバーが正常に動作していることをORBDが確認する間隔を指定します。デフォルト値は1000ミリ秒です。\fBmilliseconds\fRに指定する値は、有効な正の整数にする必要があります。 .RE .PP \-serverStartupDelay milliseconds diff --git a/src/solaris/doc/sun/man/man1/ja/pack200.1 b/src/solaris/doc/sun/man/man1/ja/pack200.1 index a1fea13058fabc25b6d1c4926535b8ffd86cd037..1ecbb968c10ccb944714b48a821e929fe20fd24f 100644 --- a/src/solaris/doc/sun/man/man1/ja/pack200.1 +++ b/src/solaris/doc/sun/man/man1/ja/pack200.1 @@ -27,7 +27,8 @@ .\" SectDesc: Javaデプロイメント・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "pack200" "1" "2013年11月21日" "JDK 8" "Javaデプロイメント・ツール" @@ -160,7 +161,7 @@ JAR \-\-segment\-limit=\fIvalue\fR .RS 4 この値は、各アーカイブ・セグメントの予想ターゲット・サイズ\fIN\fR -(バイト単位)です。単一の入力ファイルの必要サイズが\fIN\fRバイトを超えると、独立したセグメントが割り当てられます。特殊なケースとして、値が\fB\-1\fRの場合は、すべての入力ファイルを含む大きな単一のセグメントが生成され、値が0の場合は、クラスごとにセグメントが1つずつ生成されます。アーカイブ・セグメントが大きくなると、断片化が少なくなり圧縮率が高くなりますが、その処理には多くのメモリーが必要です。 +(バイト単位)です。単一の入力ファイルの必要サイズが\fIN\fRバイトを超えると、固有のアーカイブ・セグメントが提供されます。特殊なケースとして、値が\fB\-1\fRの場合は、すべての入力ファイルを含む大きな単一のセグメントが生成され、値が0の場合は、クラスごとにセグメントが1つずつ生成されます。アーカイブ・セグメントが大きくなると、断片化が少なくなり圧縮率が高くなりますが、その処理には多くのメモリーが必要です。 .sp 各セグメントのサイズは、セグメントに変換されるそれぞれの入力ファイルのサイズのほか、その名前と他の送信されるプロパティのサイズを計算して推測されます。 .sp diff --git a/src/solaris/doc/sun/man/man1/ja/policytool.1 b/src/solaris/doc/sun/man/man1/ja/policytool.1 index 37621365214f1d7fb1c3e029b0297da4b5af508e..ac7ef1842c43151fb476534b473daaf5fdeca41c 100644 --- a/src/solaris/doc/sun/man/man1/ja/policytool.1 +++ b/src/solaris/doc/sun/man/man1/ja/policytool.1 @@ -23,14 +23,15 @@ .\" .\" Title: policytool .\" Language: Japanese -.\" Date: 2013年11月21日 +.\" Date: 2015年3月3日 .\" SectDesc: セキュリティ・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 -.TH "policytool" "1" "2013年11月21日" "JDK 8" "セキュリティ・ツール" +.TH "policytool" "1" "2015年3月3日" "JDK 8" "セキュリティ・ツール" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -95,7 +96,7 @@ policytool \- .RS 4 .\} .nf -\fBpolicytool\-file mypolicyfile\fR +\fBpolicytool \-file \fR\fB\fImypolicyfile\fR\fR .fi .if n \{\ diff --git a/src/solaris/doc/sun/man/man1/ja/rmic.1 b/src/solaris/doc/sun/man/man1/ja/rmic.1 index 1953ea940db342093bdd5af794c5dde6bedaecb1..a96af2a159cd926a88061381f3699b73a0af440e 100644 --- a/src/solaris/doc/sun/man/man1/ja/rmic.1 +++ b/src/solaris/doc/sun/man/man1/ja/rmic.1 @@ -27,7 +27,8 @@ .\" SectDesc: Remote Method Invocation (RMI)ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "rmic" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)" @@ -110,8 +111,8 @@ Java Remote Method Protocol (JRMP) .PP \-classpath path .RS 4 -\fBrmic\fRコマンドがクラスを探すためのパスを指定します。このオプションは、デフォルトや\fBCLASSPATH\fR環境変数設定をオーバーライドします。ディレクトリはコロンで分割します。パスの一般的な形式は\fB\&.;<your_path>\fRです。例: -\fB\&.;/usr/local/java/classes\fR +\fBrmic\fRコマンドがクラスを探すためのパスを指定します。このオプションは、デフォルトや\fBCLASSPATH\fR環境変数設定をオーバーライドします。ディレクトリはコロンで分割します。パスの一般的な形式は\fB\&.:<your_path>\fRです。例: +\fB\&.:/usr/local/java/classes\fR .RE .PP \-d \fIdirectory\fR @@ -350,7 +351,7 @@ java(1) .sp -1 .IP \(bu 2.3 .\} -Setting the Class Path +クラス・パスの設定 .RE .br 'pl 8.5i diff --git a/src/solaris/doc/sun/man/man1/ja/rmid.1 b/src/solaris/doc/sun/man/man1/ja/rmid.1 index 1d18172f8ebb86de30409b83170145e87fac5801..2a7b00e15aefcfee7ae2bd6b2068a46221f38b66 100644 --- a/src/solaris/doc/sun/man/man1/ja/rmid.1 +++ b/src/solaris/doc/sun/man/man1/ja/rmid.1 @@ -27,7 +27,8 @@ .\" SectDesc: Remote Method Invocation (RMI)ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "rmid" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)" @@ -103,9 +104,7 @@ rmid \- .\} .SH "必要に応じてRMIDを開始" .PP -\fBrmid\fRをコマンド行から開始するには、\fBinetd\fR -(Oracle Solarisの場合)、または\fBxinetd\fR -(Linuxの場合)を構成して\fBrmid\fRを必要に応じて開始する方法もあります。 +\fBrmid\fRをコマンド行から開始するには、\fBinetd\fR(Oracle Solarisの場合)、または\fBxinetd\fR(Linuxの場合)を構成して\fBrmid\fRを必要に応じて開始する方法もあります。 .PP RMIDを開始すると、\fBSystem\&.inheritedChannel\fRメソッドを呼び出して、継承されたチャンネル(\fBinetd\fR/\fBxinetd\fRから継承)を取得しようとします。継承されたチャンネルがnullであるか、\fBjava\&.nio\&.channels\&.ServerSocketChannel\fRのインスタンスでなかった場合、RMIDはそのチャンネルは\fBinetd\fR/\fBxinetd\fRによって起動されたものではないと判断し、前述のように起動します。 .PP @@ -368,7 +367,7 @@ java(1) .sp -1 .IP \(bu 2.3 .\} -Setting the Class Path +クラス・パスの設定 .RE .br 'pl 8.5i diff --git a/src/solaris/doc/sun/man/man1/ja/rmiregistry.1 b/src/solaris/doc/sun/man/man1/ja/rmiregistry.1 index b34b55d6b08ae41d7da4c67db35f7c51d077c8fd..f6647b83c9c7c416b53e921521df2bce6c113aa6 100644 --- a/src/solaris/doc/sun/man/man1/ja/rmiregistry.1 +++ b/src/solaris/doc/sun/man/man1/ja/rmiregistry.1 @@ -27,7 +27,8 @@ .\" SectDesc: Remote Method Invocation (RMI)ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "rmiregistry" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)" diff --git a/src/solaris/doc/sun/man/man1/ja/schemagen.1 b/src/solaris/doc/sun/man/man1/ja/schemagen.1 index d9fd8de4d05e71a58528b113e276bce6f4890833..216cd998a003aaea185b0f18cd95b788faa28995 100644 --- a/src/solaris/doc/sun/man/man1/ja/schemagen.1 +++ b/src/solaris/doc/sun/man/man1/ja/schemagen.1 @@ -27,7 +27,8 @@ .\" SectDesc: Java Webサービス・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "schemagen" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール" diff --git a/src/solaris/doc/sun/man/man1/ja/serialver.1 b/src/solaris/doc/sun/man/man1/ja/serialver.1 index 5a8e4d5b6c4a8a0c3b193bb4bad1a2de5336f6b5..e9a762ca269267ecdd8ba09a68502cdd2a62f66c 100644 --- a/src/solaris/doc/sun/man/man1/ja/serialver.1 +++ b/src/solaris/doc/sun/man/man1/ja/serialver.1 @@ -27,7 +27,8 @@ .\" SectDesc: Remote Method Invocation (RMI)ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "serialver" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)" diff --git a/src/solaris/doc/sun/man/man1/ja/servertool.1 b/src/solaris/doc/sun/man/man1/ja/servertool.1 index c5aa84738c73ad43ffebe755f3c93a7cc4b6158c..2d9cd08ca127cab2402a6a428594c480919c658a 100644 --- a/src/solaris/doc/sun/man/man1/ja/servertool.1 +++ b/src/solaris/doc/sun/man/man1/ja/servertool.1 @@ -27,7 +27,8 @@ .\" SectDesc: Java IDLおよびRMI-IIOPツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "servertool" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール" diff --git a/src/solaris/doc/sun/man/man1/ja/tnameserv.1 b/src/solaris/doc/sun/man/man1/ja/tnameserv.1 index b154f01bd90b2158563ca799b9cb8cb2178e4efe..7544e4e3901f470b0caf3d70343e3747b89cba0c 100644 --- a/src/solaris/doc/sun/man/man1/ja/tnameserv.1 +++ b/src/solaris/doc/sun/man/man1/ja/tnameserv.1 @@ -27,7 +27,8 @@ .\" SectDesc: Java IDLおよびRMI-IIOPツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "tnameserv" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール" @@ -189,7 +190,7 @@ Java Virtual Machine .SH "例" .SS "ネームスペースへのオブジェクトの追加" .PP -次の例では、ネームスペースに名前を追加する方法を示します。このサンプル・プログラムは、このままの状態で完全に動作する一時ネーム・サービス・クライアントで、次のような単純なツリーを作成するものです。 +次の例では、ネームスペースに名前を追加する方法を示します。このサンプル・プログラムは、自己完結型の一時ネーム・サービス・クライアントで、次のような単純なツリーを作成するものです。 .sp .if n \{\ .RS 4 diff --git a/src/solaris/doc/sun/man/man1/ja/unpack200.1 b/src/solaris/doc/sun/man/man1/ja/unpack200.1 index d4372bc7b71127d1597628c3351c2cbfe9f18ada..9f94fa6990dd567653e4b1344b66b127d4dab447 100644 --- a/src/solaris/doc/sun/man/man1/ja/unpack200.1 +++ b/src/solaris/doc/sun/man/man1/ja/unpack200.1 @@ -27,7 +27,8 @@ .\" SectDesc: Javaデプロイメント・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "unpack200" "1" "2013年11月21日" "JDK 8" "Javaデプロイメント・ツール" diff --git a/src/solaris/doc/sun/man/man1/ja/wsgen.1 b/src/solaris/doc/sun/man/man1/ja/wsgen.1 index f60bb821c2d1d3d7ac33617b6f60c45763691873..b0ca596264de9a4eeab2a089c55844c3a73877b0 100644 --- a/src/solaris/doc/sun/man/man1/ja/wsgen.1 +++ b/src/solaris/doc/sun/man/man1/ja/wsgen.1 @@ -27,7 +27,8 @@ .\" SectDesc: Java Webサービス・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "wsgen" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール" diff --git a/src/solaris/doc/sun/man/man1/ja/wsimport.1 b/src/solaris/doc/sun/man/man1/ja/wsimport.1 index 397e2923bab4707bfdc604cf7391314f1c659b82..b23aed6f9c8d7c238e95568e9275cf37dbf05331 100644 --- a/src/solaris/doc/sun/man/man1/ja/wsimport.1 +++ b/src/solaris/doc/sun/man/man1/ja/wsimport.1 @@ -27,7 +27,8 @@ .\" SectDesc: Java Webサービス・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "wsimport" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール" diff --git a/src/solaris/doc/sun/man/man1/ja/xjc.1 b/src/solaris/doc/sun/man/man1/ja/xjc.1 index 720547c41e664eec917fe7734846c9f4b9bf4856..1a02453082c9c0b49a533a85e3febb6ff95bf6f8 100644 --- a/src/solaris/doc/sun/man/man1/ja/xjc.1 +++ b/src/solaris/doc/sun/man/man1/ja/xjc.1 @@ -27,7 +27,8 @@ .\" SectDesc: Java Webサービス・ツール .\" Software: JDK 8 .\" Arch: 汎用 -.\" Part Number: E54734-01 +.\" Part Number: E58103-01 +.\" Doc ID: JSSON .\" .if n .pl 99999 .TH "xjc" "1" "2013年11月21日" "JDK 8" "Java Webサービス・ツール" @@ -129,7 +130,7 @@ Using the XJC with Ant .PP \-p \fIpkg\fR .RS 4 -このコマンド行オプションでターゲット・パッケージを指定した場合、パッケージ名に対するすべてのバインディング・カスタマイズや、仕様で規定されているデフォルトのパッケージ名アルゴリズムよりも優先されます。 +このコマンド行オプションでターゲット・パッケージを指定した場合、その指定内容は、パッケージ名に対するすべてのバインディング・カスタマイズや、仕様で規定されているデフォルトのパッケージ名アルゴリズムよりも優先されます。 .RE .PP \-httpproxy \fIproxy\fR diff --git a/test/com/sun/jndi/ldap/LdapTimeoutTest.java b/test/com/sun/jndi/ldap/LdapTimeoutTest.java index 092416eff3efe14b5f606e723a3d9742c063fcb5..9a5580028a479d66c5f2460d6cbaacf5558212a6 100644 --- a/test/com/sun/jndi/ldap/LdapTimeoutTest.java +++ b/test/com/sun/jndi/ldap/LdapTimeoutTest.java @@ -28,167 +28,440 @@ * @summary Timeout tests for ldap */ -import com.sun.jndi.ldap.Connection; - import java.net.Socket; import java.net.ServerSocket; import java.net.SocketTimeoutException; import java.io.*; import javax.naming.*; import javax.naming.directory.*; +import java.util.List; import java.util.Hashtable; +import java.util.ArrayList; import java.util.concurrent.Callable; +import java.util.concurrent.ExecutionException; import java.util.concurrent.Executors; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Future; import java.util.concurrent.ScheduledExecutorService; 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.NANOSECONDS; -public class LdapTimeoutTest { - static volatile int passed = 0, failed = 0; - static void pass() {passed++;} - static void fail() {failed++; Thread.dumpStack();} +abstract class LdapTest implements Callable { - public static void main(String[] args) throws Exception { - ServerSocket serverSock = new ServerSocket(0); - Server s = new Server(serverSock); - s.start(); - Thread.sleep(200); - - Hashtable env = new Hashtable(11); - env.put(Context.INITIAL_CONTEXT_FACTORY, - "com.sun.jndi.ldap.LdapCtxFactory"); - env.put(Context.PROVIDER_URL, "ldap://localhost:" + - serverSock.getLocalPort()); + Hashtable env; + TestServer server; + ScheduledExecutorService killSwitchPool; + boolean passed = false; + private int HANGING_TEST_TIMEOUT = 20_000; - env.put(Context.SECURITY_AUTHENTICATION,"simple"); + public LdapTest (TestServer server, Hashtable env) { + this.server = server; + this.env = env; + } - env.put(Context.SECURITY_PRINCIPAL, "user"); - env.put(Context.SECURITY_CREDENTIALS, "password"); + public LdapTest(TestServer server, Hashtable env, + ScheduledExecutorService killSwitchPool) + { + this(server, env); + this.killSwitchPool = killSwitchPool; + } - InitialContext ctx = null; - try { - new LdapTimeoutTest().deadServerNoTimeout(env); + public abstract void performOp(InitialContext ctx) throws NamingException; + public abstract void handleNamingException( + NamingException e, long start, long end); - env.put("com.sun.jndi.ldap.connect.timeout", "10"); - env.put("com.sun.jndi.ldap.read.timeout", "3000"); - new LdapTimeoutTest().ldapReadTimeoutTest(env, false); - new LdapTimeoutTest().ldapReadTimeoutTest(env, true); - new LdapTimeoutTest().simpleAuthConnectTest(env); - } finally { - s.interrupt(); - } + public void pass() { + this.passed = true; + } - System.out.printf("%nPassed = %d, failed = %d%n%n", passed, failed); - if (failed > 0) throw new AssertionError("Some tests failed"); + public void fail() { + throw new RuntimeException("Test failed"); } - void ldapReadTimeoutTest(Hashtable env, boolean ssl) { - InitialContext ctx = null; - if (ssl) env.put(Context.SECURITY_PROTOCOL, "ssl"); - long start = System.nanoTime(); + boolean shutItDown(InitialContext ctx) { try { - ctx = new InitialDirContext(env); - SearchControls scl = new SearchControls(); - scl.setSearchScope(SearchControls.SUBTREE_SCOPE); - NamingEnumeration<SearchResult> answer = ((InitialDirContext)ctx) - .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(); - } - } else { - pass(); - } - } finally { - if (!shutItDown(ctx)) fail(); + if (ctx != null) ctx.close(); + return true; + } catch (NamingException ex) { + return false; } } - void simpleAuthConnectTest(Hashtable env) { + public Boolean call() { InitialContext ctx = null; + ScheduledFuture killer = null; long start = System.nanoTime(); + 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) { - pass(); - } else { - System.err.println("Fail: Waited too long"); - fail(); - } - } else if (e.getCause() instanceof InterruptedIOException) { - Thread.interrupted(); - fail(); - } else { + 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 { + 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(); } - } finally { - if (!shutItDown(ctx)) fail(); + return passed; + } catch (IOException|InterruptedException e) { + throw new RuntimeException(e); } } +} - void deadServerNoTimeout(Hashtable env) { - InitialContext ctx = null; - long start = System.currentTimeMillis(); - try { - ctx = new InitialDirContext(env); - SearchControls scl = new SearchControls(); - scl.setSearchScope(SearchControls.SUBTREE_SCOPE); - NamingEnumeration<SearchResult> answer = ((InitialDirContext)ctx) - .search("ou=People,o=JNDITutorial", "(objectClass=*)", scl); - // shouldn't reach here +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(); + scl.setSearchScope(SearchControls.SUBTREE_SCOPE); + NamingEnumeration<SearchResult> answer = ((InitialDirContext)ctx) + .search("ou=People,o=JNDITutorial", "(objectClass=*)", scl); + } +} + +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(); - } catch (NamingException e) { - long elapsed = System.currentTimeMillis() - start; - 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(); - fail(); - } else { - pass(); - } - } finally { - if (!shutItDown(ctx)) fail(); + } else { + pass(); } } +} - boolean shutItDown(InitialContext ctx) { - try { - if (ctx != null) ctx.close(); - return true; - } catch (NamingException ex) { - return false; +class DeadServerTimeoutTest extends DeadServerTest { + + public DeadServerTimeoutTest(Hashtable env) throws IOException { + super(env); + } + + public void handleNamingException(NamingException e, long start, long end) + { + // non SSL connect will timeout via readReply using connectTimeout + if (NANOSECONDS.toMillis(end - start) < 2_900) { + pass(); + } else { + System.err.println("Fail: Waited too long"); + 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 { + fail(); + } + } +} + + +class ReadServerNoTimeoutTest extends ReadServerTest { + + public ReadServerNoTimeoutTest(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("ReadServerNoTimeoutTest fail: timeout should be " + + "at least %s ms, actual time is %s ms%n", + LdapTimeoutTest.MIN_TIMEOUT, + NANOSECONDS.toMillis(end - start)); + fail(); + } else { + pass(); } } +} - static class Server extends Thread { - final ServerSocket serverSock; +class ReadServerTimeoutTest extends ReadServerTest { + + public ReadServerTimeoutTest(Hashtable env) throws IOException { + super(env); + } - Server(ServerSocket serverSock) { - this.serverSock = serverSock; + public void handleNamingException(NamingException e, long start, long end) { + if (NANOSECONDS.toMillis(end - start) < 2_900) { + fail(); + } else { + pass(); } + } +} - public void run() { +class TestServer extends Thread { + ServerSocket serverSock; + boolean accepting = false; + + public TestServer() throws IOException { + this.serverSock = new ServerSocket(0); + start(); + } + + 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 { + accepting = true; + Socket socket = serverSock.accept(); + InputStream in = socket.getInputStream(); + 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 + } + } +} + +class DeadServer extends TestServer { + + public DeadServer() throws IOException { + super(); + } + + public void run() { + while(true) { try { + accepting = true; 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(); } } + } diff --git a/test/java/awt/image/DrawImage/IncorrectUnmanagedImageRotatedClip.java b/test/java/awt/image/DrawImage/IncorrectUnmanagedImageRotatedClip.java new file mode 100644 index 0000000000000000000000000000000000000000..faaf767d15c2879a8503c5d760f1db52b254c899 --- /dev/null +++ b/test/java/awt/image/DrawImage/IncorrectUnmanagedImageRotatedClip.java @@ -0,0 +1,138 @@ +/* + * 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(); + } +} diff --git a/test/java/awt/image/MultiResolutionImage/MultiResolutionImageObserverTest.java b/test/java/awt/image/MultiResolutionImage/MultiResolutionImageObserverTest.java new file mode 100644 index 0000000000000000000000000000000000000000..50ba7638ab9ac5e498a72fffc8c6a47a4c460e2b --- /dev/null +++ b/test/java/awt/image/MultiResolutionImage/MultiResolutionImageObserverTest.java @@ -0,0 +1,120 @@ +/* + * 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; + } + } +} diff --git a/test/java/lang/Class/getDeclaredField/ClassDeclaredFieldsTest.java b/test/java/lang/Class/getDeclaredField/ClassDeclaredFieldsTest.java new file mode 100644 index 0000000000000000000000000000000000000000..c05e1790d59c070e9febdf0376e77a85c2cc04f7 --- /dev/null +++ b/test/java/lang/Class/getDeclaredField/ClassDeclaredFieldsTest.java @@ -0,0 +1,205 @@ +/* + * 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(); + } + } + +} diff --git a/test/java/lang/ProcessBuilder/Basic.java b/test/java/lang/ProcessBuilder/Basic.java index b86509df1a83ac1e2ef8ecf3b25b028523f2274b..1db1d31d8c4ae76485537bbb18c5e7ba5f5ca15c 100644 --- a/test/java/lang/ProcessBuilder/Basic.java +++ b/test/java/lang/ProcessBuilder/Basic.java @@ -2246,9 +2246,10 @@ public class Basic { fail("Test failed: Process exited prematurely"); } long end = System.nanoTime(); - // give waitFor(timeout) a wide berth (200ms) - // Old AIX machines my need a little longer. - if ((end - start) > 200000000L * (AIX.is() ? 2 : 1)) + // give waitFor(timeout) a wide berth (2s) + System.out.printf(" waitFor process: delta: %d%n",(end - start) ); + + if ((end - start) > TimeUnit.SECONDS.toNanos(2)) fail("Test failed: waitFor took too long (" + (end - start) + "ns)"); p.destroy(); @@ -2272,19 +2273,23 @@ public class Basic { final Process p = new ProcessBuilder(childArgs).start(); long start = System.nanoTime(); - p.waitFor(1000, TimeUnit.MILLISECONDS); + p.waitFor(10, TimeUnit.MILLISECONDS); 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)"); p.destroy(); start = System.nanoTime(); - p.waitFor(1000, TimeUnit.MILLISECONDS); + p.waitFor(8, TimeUnit.SECONDS); 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); } //---------------------------------------------------------------- diff --git a/test/java/lang/invoke/ExplicitCastArgumentsTest.java b/test/java/lang/invoke/ExplicitCastArgumentsTest.java index 06f7a64aabdd9d5192f10649404686ac651c5008..045ec15599ebf650b1a8ad7fec6e2f1fb6e7f092 100644 --- a/test/java/lang/invoke/ExplicitCastArgumentsTest.java +++ b/test/java/lang/invoke/ExplicitCastArgumentsTest.java @@ -32,21 +32,36 @@ import sun.invoke.util.Wrapper; */ public class ExplicitCastArgumentsTest { private static final boolean VERBOSE = Boolean.getBoolean("verbose"); + private static final Class<?> THIS_CLASS = ExplicitCastArgumentsTest.class; 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 to : Wrapper.values()) { 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 { // MHs.eCA javadoc: // If T0 is a reference and T1 a primitive, and if the reference is null at runtime, a zero value is introduced. - test(from.wrapperType(), to.primitiveType(), null, false); + test(from.wrapperType(), to.primitiveType(), null, false); } public static void test(Class<?> from, Class<?> to, Object param, boolean failureExpected) throws Throwable { diff --git a/test/java/lang/invoke/LFCaching/LFCachingTestCase.java b/test/java/lang/invoke/LFCaching/LFCachingTestCase.java index 30ba39ac2e0993049391533645b8f5d22d195b4d..50a57e40c673a35efcc8f345f1aad9d569d9bc5f 100644 --- a/test/java/lang/invoke/LFCaching/LFCachingTestCase.java +++ b/test/java/lang/invoke/LFCaching/LFCachingTestCase.java @@ -63,12 +63,17 @@ public abstract class LFCachingTestCase extends LambdaFormTestCase { } if (lambdaForm0 != lambdaForm1) { - System.err.println("Lambda form 0 toString is:"); - System.err.println(lambdaForm0); - System.err.println("Lambda form 1 toString is:"); - System.err.println(lambdaForm1); - throw new AssertionError("Error: Lambda forms of the two method handles" - + " are not the same. LF cahing does not work"); + // 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(lambdaForm0); + System.err.println("Lambda form 1 toString is:"); + System.err.println(lambdaForm1); + throw new AssertionError("Error: Lambda forms of the two method handles" + + " 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 | SecurityException | InvocationTargetException ex) { diff --git a/test/java/lang/invoke/LFCaching/LFGarbageCollectedTest.java b/test/java/lang/invoke/LFCaching/LFGarbageCollectedTest.java index 451af074bdce4cd4bfdbad446d3cb2ad8df6a854..0980c42cef97a132f087fbaec4d94d03c3da067f 100644 --- a/test/java/lang/invoke/LFCaching/LFGarbageCollectedTest.java +++ b/test/java/lang/invoke/LFCaching/LFGarbageCollectedTest.java @@ -26,12 +26,12 @@ * @bug 8046703 * @summary Test verifies that lambda forms are garbage collected * @author kshefov - * @ignore 8057020 * @library /lib/testlibrary/jsr292 /lib/testlibrary + * @ignore 8057020 * @build TestMethods * @build LambdaFormTestCase * @build LFGarbageCollectedTest - * @run main/othervm/timeout=600 -DtestLimit=150 LFGarbageCollectedTest + * @run main/othervm LFGarbageCollectedTest */ import java.lang.invoke.MethodHandle; diff --git a/test/java/lang/invoke/LFCaching/LFMultiThreadCachingTest.java b/test/java/lang/invoke/LFCaching/LFMultiThreadCachingTest.java index 21771c1a0a0b1fba5d71c0d0c7ddbb5010ddda08..35c2f97d1910f1d972afce1d5434174d7663061b 100644 --- a/test/java/lang/invoke/LFCaching/LFMultiThreadCachingTest.java +++ b/test/java/lang/invoke/LFCaching/LFMultiThreadCachingTest.java @@ -31,7 +31,7 @@ * @build LambdaFormTestCase * @build LFCachingTestCase * @build LFMultiThreadCachingTest - * @run main/othervm/timeout=300 LFMultiThreadCachingTest + * @run main/othervm LFMultiThreadCachingTest */ import java.lang.invoke.MethodHandle; diff --git a/test/java/lang/invoke/LFCaching/LFSingleThreadCachingTest.java b/test/java/lang/invoke/LFCaching/LFSingleThreadCachingTest.java index bd0ba2bde5906a507bdd0c5edadf86faf888c2f4..6a44e44d8b6b391303323f7eed76152ef8ad541d 100644 --- a/test/java/lang/invoke/LFCaching/LFSingleThreadCachingTest.java +++ b/test/java/lang/invoke/LFCaching/LFSingleThreadCachingTest.java @@ -31,7 +31,7 @@ * @build LambdaFormTestCase * @build LFCachingTestCase * @build LFSingleThreadCachingTest - * @run main/othervm/timeout=300 LFSingleThreadCachingTest + * @run main/othervm LFSingleThreadCachingTest */ import java.lang.invoke.MethodHandle; diff --git a/test/java/lang/invoke/LFCaching/LambdaFormTestCase.java b/test/java/lang/invoke/LFCaching/LambdaFormTestCase.java index c8678980a1ed23ed13383c37fa7db186588e15f8..7b6ce2eeffd8116791767deee68a40eb0cc264bf 100644 --- a/test/java/lang/invoke/LFCaching/LambdaFormTestCase.java +++ b/test/java/lang/invoke/LFCaching/LambdaFormTestCase.java @@ -23,10 +23,15 @@ import com.oracle.testlibrary.jsr292.Helper; import com.sun.management.HotSpotDiagnosticMXBean; + +import java.lang.management.GarbageCollectorMXBean; import java.lang.management.ManagementFactory; import java.lang.reflect.Method; import java.util.Collection; +import java.util.List; 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 @@ -41,12 +46,18 @@ public abstract class LambdaFormTestCase { private final static String INTERNAL_FORM_METHOD_NAME = "internalForm"; private static final double ITERATIONS_TO_CODE_CACHE_SIZE_RATIO = 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 * used to get a lambda form from a method handle. */ protected final static Method INTERNAL_FORM; + private static final List<GarbageCollectorMXBean> gcInfo; + + private static long gcCount() { + return gcInfo.stream().mapToLong(GarbageCollectorMXBean::getCollectionCount).sum(); + } static { try { @@ -56,9 +67,20 @@ public abstract class LambdaFormTestCase { } catch (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 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 @@ -69,12 +91,17 @@ public abstract class LambdaFormTestCase { */ protected LambdaFormTestCase(TestMethods testMethod) { this.testMethod = testMethod; + this.gcCountAtStart = gcCount(); } public TestMethods getTestMethod() { return testMethod; } + protected boolean noGCHappened() { + return gcCount() == gcCountAtStart; + } + /** * Routine that executes a test case. */ @@ -88,13 +115,10 @@ public abstract class LambdaFormTestCase { * @param testMethods list of test methods */ 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 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", - iterations, iterations * testCaseNum); + totalIterations, totalIterations * testCaseNum); HotSpotDiagnosticMXBean hsDiagBean = ManagementFactory.getPlatformMXBean(HotSpotDiagnosticMXBean.class); long codeCacheSize = Long.parseLong( hsDiagBean.getVMOption("ReservedCodeCacheSize").getValue()); @@ -103,29 +127,42 @@ public abstract class LambdaFormTestCase { * ITERATIONS_TO_CODE_CACHE_SIZE_RATIO); System.out.printf("Number of iterations limited by code cache size is %d (%d cases)%n", iterationsByCodeCacheSize, iterationsByCodeCacheSize * testCaseNum); - if (iterations > iterationsByCodeCacheSize) { - iterations = iterationsByCodeCacheSize; + if (totalIterations > iterationsByCodeCacheSize) { + totalIterations = iterationsByCodeCacheSize; } System.out.printf("Number of iterations is set to %d (%d cases)%n", - iterations, iterations * testCaseNum); + totalIterations, totalIterations * testCaseNum); System.out.flush(); - for (long i = 0; i < iterations; i++) { - System.err.println(String.format("Iteration %d:", i)); - for (TestMethods testMethod : testMethods) { - LambdaFormTestCase testCase = ctor.apply(testMethod); - try { - System.err.printf("Tested LF caching feature with MethodHandles.%s method.%n", - testCase.getTestMethod().name); - testCase.doTest(); - System.err.println("PASSED"); - } catch (Throwable t) { - t.printStackTrace(); - System.err.println("FAILED"); - passed = false; - failCounter++; - } - testCounter++; - } + TimeLimitedRunner runner = new TimeLimitedRunner(TIMEOUT, 4.0d, + () -> { + if (doneIterations >= totalIterations) { + return false; + } + System.err.println(String.format("Iteration %d:", doneIterations)); + for (TestMethods testMethod : testMethods) { + LambdaFormTestCase testCase = ctor.apply(testMethod); + try { + System.err.printf("Tested LF caching feature with MethodHandles.%s method.%n", + testCase.getTestMethod().name); + testCase.doTest(); + System.err.println("PASSED"); + } catch (Throwable t) { + t.printStackTrace(); + System.err.println("FAILED"); + passed = false; + failCounter++; + } + testCounter++; + } + doneIterations++; + return true; + }); + try { + runner.call(); + } catch (Throwable t) { + t.printStackTrace(); + System.err.println("FAILED"); + throw new Error("Unexpected error!"); } if (!passed) { throw new Error(String.format("%d of %d test cases FAILED! %n" diff --git a/test/java/util/logging/LogManagerAppContextDeadlock.java b/test/java/util/logging/LogManagerAppContextDeadlock.java new file mode 100644 index 0000000000000000000000000000000000000000..3e4918e5feec81718818b1cc16c843383d830f4e --- /dev/null +++ b/test/java/util/logging/LogManagerAppContextDeadlock.java @@ -0,0 +1,370 @@ +/* + * 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(); + } + } + +} diff --git a/test/javax/management/monitor/CounterMonitorTest.java b/test/javax/management/monitor/CounterMonitorTest.java index 6c4ea1022e36cef730f4e5ae26963df73532468a..939f1ece0df760a49c834ab89e0591263ac7d4b3 100644 --- a/test/javax/management/monitor/CounterMonitorTest.java +++ b/test/javax/management/monitor/CounterMonitorTest.java @@ -1,5 +1,5 @@ /* - * 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. * * This code is free software; you can redistribute it and/or modify it @@ -26,7 +26,7 @@ * @bug 4981829 * @summary Test that the counter monitor, when running in difference mode, * emits a notification every time the threshold is exceeded. - * @author Luis-Miguel Alventosa + * @author Luis-Miguel Alventosa, Shanliang JIANG * @run clean CounterMonitorTest * @run build CounterMonitorTest * @run main CounterMonitorTest @@ -50,23 +50,31 @@ public class CounterMonitorTest implements NotificationListener { private boolean notifyFlag = true; // granularity period - private int granularityperiod = 500; + private int granularityperiod = 10; - // counter values - private int[] values = new int[] {4, 6, 9, 11}; + // derived gauge + private volatile int derivedGauge = 2; // flag to notify that a message has been received private volatile boolean messageReceived = false; + private volatile Object observedValue = null; + // MBean class public class StdObservedObject implements StdObservedObjectMBean { public Object getNbObjects() { + echo(">>> StdObservedObject.getNbObjects: " + count); + synchronized(CounterMonitorTest.class) { + observedValue = count; + CounterMonitorTest.class.notifyAll(); + } return count; } public void setNbObjects(Object n) { + echo(">>> StdObservedObject.setNbObjects: " + n); count = n; } - private Object count= null; + private volatile Object count= null; } // MBean interface @@ -166,18 +174,18 @@ public class CounterMonitorTest implements NotificationListener { Attribute attrib = new Attribute("NbObjects", data); server.setAttribute(stdObsObjName, attrib); - // Wait for granularity period (multiplied by 2 for sure) - // - Thread.sleep(granularityperiod * 2); + waitObservation(data); // Loop through the values // - for (int i = 0; i < values.length; i++) { - data = new Integer(values[i]); - echo(">>> Set data = " + data.intValue()); + while (derivedGauge++ < 10) { + System.out.print(">>> Set data from " + data.intValue()); + data = new Integer(data.intValue() + derivedGauge); + echo(" to " + data.intValue()); attrib = new Attribute("NbObjects", data); server.setAttribute(stdObsObjName, attrib); + waitObservation(data); echo("\tdoWait in Counter Monitor"); doWait(); @@ -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 */ diff --git a/test/javax/swing/JFileChooser/FileFilterDescription/FileFilterDescription.html b/test/javax/swing/JFileChooser/FileFilterDescription/FileFilterDescription.html new file mode 100644 index 0000000000000000000000000000000000000000..99133770bffd7d87f6cd8be6760cc2f4cca6e47e --- /dev/null +++ b/test/javax/swing/JFileChooser/FileFilterDescription/FileFilterDescription.html @@ -0,0 +1,40 @@ +<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> diff --git a/test/javax/swing/JFileChooser/FileFilterDescription/FileFilterDescription.java b/test/javax/swing/JFileChooser/FileFilterDescription/FileFilterDescription.java new file mode 100644 index 0000000000000000000000000000000000000000..00345e9df82fdc8eb36633bb5936c8873cbdf9d0 --- /dev/null +++ b/test/javax/swing/JFileChooser/FileFilterDescription/FileFilterDescription.java @@ -0,0 +1,85 @@ +/* + * 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 diff --git a/test/lib/testlibrary/jdk/testlibrary/TimeLimitedRunner.java b/test/lib/testlibrary/jdk/testlibrary/TimeLimitedRunner.java new file mode 100644 index 0000000000000000000000000000000000000000..5cc98ea8f8ad136dddaa5a17be9373cd56f8e2e4 --- /dev/null +++ b/test/lib/testlibrary/jdk/testlibrary/TimeLimitedRunner.java @@ -0,0 +1,86 @@ +/* + * 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; + } + +} diff --git a/test/lib/testlibrary/jdk/testlibrary/Utils.java b/test/lib/testlibrary/jdk/testlibrary/Utils.java index 5d4a441f2ea39acbb57d3a5eede2b779f2de078a..afcf6325bfb37f9c4bbf530ab356abeabfbc0bd4 100644 --- a/test/lib/testlibrary/jdk/testlibrary/Utils.java +++ b/test/lib/testlibrary/jdk/testlibrary/Utils.java @@ -35,6 +35,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.regex.Pattern; import java.util.regex.Matcher; +import java.util.concurrent.TimeUnit; /** * Common library for various test helper functions. @@ -67,6 +68,12 @@ public final class Utils { 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 constructor to prevent class instantiation } @@ -259,4 +266,14 @@ public final class Utils { 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); + } } diff --git a/test/sun/awt/dnd/8024061/bug8024061.java b/test/sun/awt/dnd/8024061/bug8024061.java index 07165c09a61c11686b9554b0ac9e0a66fce05da1..b0594f67c82cce7a91d786af4331a620621b6a5b 100644 --- a/test/sun/awt/dnd/8024061/bug8024061.java +++ b/test/sun/awt/dnd/8024061/bug8024061.java @@ -277,9 +277,6 @@ public class bug8024061 { try { Transferable t = dtde.getTransferable(); Object data = t.getTransferData(DropObjectFlavor); - if (data != null) { - throw new Exception("getTransferData returned non-null"); - } } catch (Exception e) { dragEnterException = e; e.printStackTrace(); diff --git a/test/sun/net/www/http/HttpClient/StreamingRetry.java b/test/sun/net/www/http/HttpClient/StreamingRetry.java index 35dbc51d2dec59121eea11ed58932c44571612af..d3e2b5215d07895157363b4a4d7c7ace2d619768 100644 --- a/test/sun/net/www/http/HttpClient/StreamingRetry.java +++ b/test/sun/net/www/http/HttpClient/StreamingRetry.java @@ -37,13 +37,13 @@ import static java.lang.System.out; public class StreamingRetry implements Runnable { 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(); } - void instanceMain() throws IOException { + void instanceMain() throws Exception { out.println("Test with default method"); test(null); out.println("Test with POST method"); @@ -54,12 +54,13 @@ public class StreamingRetry implements Runnable { 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.setSoTimeout(ACCEPT_TIMEOUT); int port = ss.getLocalPort(); - (new Thread(this)).start(); + Thread otherThread = new Thread(this); + otherThread.start(); try { URL url = new URL("http://localhost:" + port + "/"); @@ -77,6 +78,7 @@ public class StreamingRetry implements Runnable { //expected.printStackTrace(); } finally { ss.close(); + otherThread.join(); } }