Java アプリケーションを起動します。
java [ options ] class [ arguments ]
java [ options ] -jar file.jar [ arguments ]
javaw [ options ] class [ arguments ]
javaw [ options ] -jar file.jar [ argument ]
コマンド行オプション。「オプション」を参照してください。
呼び出されるクラスの名前。
呼び出される JAR ファイルの名前。-jar
コマンドと一緒にのみ使用される。
main
関数に渡される引数。
java
コマンドは Java アプリケーションを起動します。これは、Java Runtime Environment を起動し、指定されたクラスをロードし、そのクラスの main
メソッドを呼び出すことによって行われます。
このメソッドは、public および static として宣言する必要があります。また、値を返してはいけません。さらに、String 配列をパラメータとして指定できなければなりません。メソッド宣言の形式は次のとおりです。
public static void main(String[] args)
デフォルトでは、オプションのない最初の引数が呼び出されるクラスの名前になります。この名前には、完全指定のクラス名を使用するようにしてください。-jar
オプションを指定した場合、オプション引数以外の最初の引数がアプリケーションのクラスファイルとリソースファイルを含む JAR ファイルの名前になり、マニフェストの Main-Class ヘッダーで指定されたクラスが起動クラスになります。
Java Runtime は、ブートストラップクラスパス、インストール型拡張機能、およびユーザークラスパスの 3 か所から起動クラスとほかの使用されているクラスを検索します。
クラス名または JAR ファイル名のあとにある、オプション引数以外の引数は、main
関数に渡されます。
javaw
コマンドは、javaw
にコンソールウィンドウが関連付けられていないこと以外は、java
コマンドと同じです。javaw は、コマンドプロンプトウィンドウを表示する必要がないときに使用します。ただし、javaw
起動ツールでは、なんらかの理由で起動に失敗すると、エラー情報を示すダイアログボックスが表示されます。
起動ツールには、現在の実行環境でサポートされている標準オプションのセットがあります。
また、デフォルトの Java HotSpot VM では、非標準オプションのセットも提供されます。これは、将来のリリースで変更される可能性があります。「非標準オプション」を参照してください。
Java HotSpot Client VM を選択します。64 ビット対応 JDK は現時点では、このオプションを無視し、代わりに Java Hotspot Server VM を使用します。
デフォルトの Java VM の選択については、「Server-Class マシンの検出」を参照してください。http://docs.oracle.com/javase/7/docs/technotes/guides/vm/server-class.html
Java HotSpot Server VM を選択します。64 ビット対応 JDK 上では、サポートされるのは Java Hotspot Server VM だけであるため、-
server
オプションが暗黙的に選択されます。
デフォルトの Java VM の選択については、「Server-Class マシンの検出」を参照してください。http://docs.oracle.com/javase/7/docs/technotes/guides/vm/server-class.html
ネイティブエージェントライブラリ libname をロードします。例を示します。
-agentlib:hprof -agentlib:jdwp=help -agentlib:hprof=help
「JVMTI エージェントのコマンド行オプション」を参照してください。
http://docs.oracle.com/javase/7/docs/platform/jvmti/jvmti.html#starting
フルパス名を使用して、ネイティブエージェントライブラリをロードします。
クラスファイルを検索するディレクトリ、JAR ファイル、および ZIP アーカイブのリストを指定します。複数のクラスパスエントリはセミコロン (;) で区切ります。-classpath
または -cp
を指定すると、CLASSPATH 環境変数の設定がオーバーライドされます。
-classpath
も -cp
も使用されず、CLASSPATH も設定されていない場合、ユーザークラスパスは現在のディレクトリ (.) で構成されます。
便宜上、*
のベース名を含むクラスパス要素は、ディレクトリ内の拡張子 .jar または .JAR を持つすべてのファイルのリストを指定するのと同じとみなされます。Java プログラムはこの 2 つの呼び出しを区別できません。
たとえば、ディレクトリ mydir に a.jar と b.JAR が含まれている場合、クラスパス要素 mydir/*
は A.jar:b.JAR に展開されます (JAR ファイルの順番は不確定)。このリストには、隠しファイルも含め、指定されたディレクトリ内のすべての JAR ファイルが含まれます。*
だけからなるクラスパスエントリは、カレントディレクトリ内のすべての JAR ファイルのリストに展開されます。CLASSPATH 環境変数 (定義されているとき) も同様に展開されます。クラスパスのワイルドカード展開は、Java VM の起動前に実行されます。環境を照会しないかぎり、Java プログラムが展開されていないワイルドカードを認識することはありません。たとえば、System.getenv("CLASSPATH")
を呼び出すことで。
システムプロパティーの値を設定します。
value がスペースを含む文字列である場合は、文字列を二重引用符で囲む必要があります。
java -Dmydir="some string" SomeClass
アサーションを無効にします。これはデフォルトの設定です。
引数なしの -disableassertions
または -da
を指定すると、アサーションが無効になります。"..."
で終わる引数を 1 つ指定すると、指定したパッケージとそのサブパッケージ内でアサーションが無効になります。引数として "..."
を指定すると、現在の作業ディレクトリにある名前のないパッケージ内でアサーションが無効になります。"..."
で終わらない引数を 1 つ指定すると、指定したクラス内でアサーションが無効になります。
package com.wombat.fruitbat
内ではアサーションを有効にし、クラス com.wombat.fruitbat.Brickbat
内ではアサーションを無効にした上で、プログラムを実行するには、次のようなコマンドを使用します。
java -ea:com.wombat.fruitbat... -da:com.wombat.fruitbat.Brickbat <Main Class>
-disableassertions
および -da
スイッチは、すべてのクラスローダーおよびシステムクラスに適用されます (システムクラスにクラスローダーはありません)。ただし、この規則には例外が 1 つあります。引数なしの形式で、スイッチはシステムには適用されません。この例外を利用すれば、システムクラスを除くすべてのクラスでアサーションを簡単に有効にすることができます。すべてのシステムクラスでアサーションを有効にするための別のスイッチとして、-disablesystemassertions
オプションが用意されています。
アサーションを有効にします。アサーションは、デフォルトでは無効になっています。
引数なしの -enableassertions
または -ea
を指定すると、アサーションが有効になります。"..."
で終わる引数を 1 つ指定すると、指定したパッケージとそのサブパッケージ内でアサーションが有効になります。引数として "..."
を指定すると、現在の作業ディレクトリにある名前のないパッケージ内でアサーションが有効になります。"..."
で終わらない引数を 1 つ指定すると、指定したクラス内でアサーションが有効になります。
単一のコマンドにこれらのスイッチのインスタンスを複数指定した場合は、指定したスイッチが順番に処理されてからクラスがロードされます。したがって、たとえば、パッケージ com.wombat.fruitbat (サブパッケージを含む) 内でのみアサーションを有効にしてプログラムを実行するには、次のようなコマンドを使用します。
java -ea:com.wombat.fruitbat... <Main Class>
-enableassertions
および -ea
スイッチは、すべてのクラスローダおよびシステムクラスに適用されます (システムクラスにはクラスローダはありません)。ただし、この規則には例外が 1 つあります。引数なしの形式で、スイッチはシステムには適用されません。この例外を利用すれば、システムクラスを除くすべてのクラスでアサーションを簡単に有効にすることができます。すべてのシステムクラスでアサーションを有効にするための別のスイッチとして、-enablesystemassertions
オプションが用意されています。
すべてのシステムクラス内でアサーションを有効にします (システムクラスについてアサーションのデフォルトステータスを true に設定します)。
すべてのシステムクラス内でアサーションを無効にします。
使用法を表示して終了します。
JAR ファイルにカプセル化されたプログラムを実行します。最初の引数は、起動クラスの名前ではなく、JAR ファイルの名前にします。このオプションが機能するには、JAR ファイルのマニフェストに Main-Class
: classname という形式の行を指定する必要があります。classname には、アプリケーションの開始位置として機能する public static void main(String[] args)
メソッドを含むクラスを指定します。
このオプションを使用すると、指定した JAR ファイルがすべてのユーザークラスのソースになり、ユーザークラスパスのほかの設定は無視されます。
Java プログラミング言語エージェントをロードします。Java アプリケーションの計測の詳細については、Java API ドキュメントの java.lang.instrument
パッケージの説明 (http://docs.oracle.com/javase/7/docs/api/java/lang/instrument/package-summary.html
) を参照してください。
ユーザーのプライベート JRE をバージョン検索に含めます。
ユーザーのプライベート JRE をバージョン検索から除外します。
バージョン情報を表示して続行します。(-version
も参照してください。)
imagepath に指定された画像を含むスプラッシュ画面を表示します。
クラスがロードされるたびにクラスに関する情報を表示します。
ガベージコレクションイベントが発生するたびに報告します。
ネイティブメソッドの使用およびその他の Java Native Interface (JNI) アクティビティーに関する情報を報告します。
バージョン情報を表示して終了します。-showversion
オプションも参照してください。
コマンド行に指定されたクラスまたは JAR ファイルが、release で指定されたバージョンを必要としていることを示します。呼び出された java
コマンドのバージョンがこの指定内容を満たさず、かつ適切な実装がシステム上で見つかった場合は、その適切な実装が使用されます。
release
オプションには、正確なバージョン、またはバージョン文字列と呼ばれるバージョンのリストを指定します。バージョン文字列は、いくつかのバージョン範囲を空白で区切った形式の順序付きリストです。バージョン範囲は、バージョン ID、バージョン ID の後ろにアスタリスク (*
) を付加したもの、バージョン ID の後ろにプラス記号 (+
) を付加したもの、アンパサンド (&
) で結合された 2 つのバージョン ID からなるバージョン範囲、のいずれかになります。アスタリスクはプレフィックス一致を、プラス記号は指定されたバージョン以上を、アンパサンドは 2 つのバージョン範囲の論理 and
を、それぞれ意味します。例を示します。
-version:"1.6.0_13 1.6*&1.6.0_10+"
前述の例の意味は、バージョン 1.6.0_13、または 1.6.0_10 以上で 1.6 をバージョン ID プレフィックスとして持つバージョン、のいずれかをクラスまたは JAR ファイルが必要とする、ということです。バージョン文字列の厳密な構文や定義については、「Java Network Launching Protocol & API Specification (JSR-56)」の「Appendix A」を参照してください。
JAR ファイルの場合は、バージョン要件をコマンド行に指定するよりも、JAR ファイルのマニフェスト内に指定することが推奨されています。
このオプションの使用に関する重要なポリシー情報については、「注」を参照してください。
非標準オプションに関する情報を表示して終了します。
インタプリタ専用モードで動作します。ネイティブコードへのコンパイルは無効になり、すべてのバイトコードがインタプリタによって実行されます。Java HotSpot VM クライアントに対応するコンパイラが提供するパフォーマンス上の利点は、このモードでは実現されません。
バックグラウンドコンパイルを無効にします。通常、Java VM では、メソッドをバックグラウンドタスクとしてコンパイルし、バックグラウンドコンパイルが終了するまではインタプリタモードでメソッドを実行します。-Xbatch フラグを指定すると、バックグラウンドコンパイルが無効になり、すべてのメソッドのコンパイルが完了するまでフォアグラウンドタスクとして処理されます。
ブートクラスファイルを探すディレクトリ、JAR ファイル、および ZIP アーカイブをセミコロンで区切ったリストで指定します。それらが、Java プラットフォーム JDK に含まれるブートクラスファイルの代わりに使用されます。
rt.jar 内のクラスをオーバーライドするためにこのオプションを使用するアプリケーションは配備しないでください (Java Runtime Environment バイナリコードライセンス違反になります)。
ディレクトリ、JAR ファイル、および ZIP アーカイブのパスをセミコロンで区切って指定します。パスはデフォルトのブートストラップクラスパスのあとに追加されます。
ディレクトリ、JAR ファイル、および ZIP アーカイブのパスをセミコロンで区切って指定します。パスはデフォルトのブートストラップクラスパスの前に追加されます。
rt.jar 内のクラスをオーバーライドするためにこのオプションを使用するアプリケーションは配備しないでください (Java Runtime Environment バイナリコードライセンス違反になります)。
Java Native Interface (JNI) 機能に対して追加チェックを行います。具体的には、Java 仮想マシンは JNI 要求を処理する前に、JNI 関数に渡されるパラメータと、実行時環境データを検証します。無効なデータが見つかった場合は、ネイティブコードに問題があることを示しているため、Java 仮想マシンは致命的エラーを発生して終了します。このオプションを使用すると、パフォーマンス低下が予想されます。
クラスとファイルの形式を厳密にチェックします。下位互換性のため、Java 仮想マシンが実行するデフォルトの形式チェックは、JDK ソフトウェアのバージョン 1.1.x が実行するチェックと同程度の厳密さになっています。-Xfuture
オプションを指定すると、クラスファイル形式の仕様への準拠を強化するためのより厳密なチェックが有効になります。Java アプリケーション起動ツールの将来のリリースでは、より厳密なチェックがデフォルトになるため、新しいコードを開発するときにはこのフラグを使用することをお勧めします。
クラスのガベージコレクションを無効にします。このオプションを使用すると、ロード済みクラスからメモリーが回復されなくなるため、全体的なメモリー使用量が増大します。この場合、アプリケーションによっては OutOfMemoryError
がスローされる可能性があります。
インクリメンタルガベージコレクタを有効にします。インクリメンタルガベージコレクタは、デフォルトでは無効になっています。有効にすると、プログラムの実行中にガベージコレクションによる一時停止が発生しなくなります。インクリメンタルガベージコレクタは、プログラムと同時に実行することがあり、この場合、プログラムの利用できるプロセッサ能力が低下します。
-verbose:gc
と同様にガベージコレクションイベントが発生するたびに報告しますが、そのデータをファイルに記録します。-verbose:gc
を指定したときに報告される情報のほかに、報告される各イベントの先頭に、最初のガベージコレクションイベントからの経過時間 (秒単位) が付け加えられます。
ネットワークの待機時間によって Java VM の実行速度が低下するのを避けるため、このファイルの格納先は、常にローカルファイルシステムにしてください。ファイルシステムが満杯になると、ファイルは切り詰められ、そのファイルにデータが引き続き記録されます。このオプションは -verbose:gc
をオーバーライドします (両方がコマンド行に指定されている場合)。
若い世代 (ナーサリ) のサイズを設定します。
メモリー割り当てプールの初期サイズをバイト数で指定します。指定する値は、1M バイトより大きい 1024 の倍数にしなければなりません。K バイトを指定するには文字 k
または K
、M バイトを指定するには文字 m
または M
を付けます。デフォルト値は、実行時にシステムの設定に基づいて選択されます。「ガベージコレクタエルゴノミクス」を参照してください。http://docs.oracle.com/javase/7/docs/technotes/guides/vm/gc-ergonomics.html
例
-Xms6291456 -Xms6144k -Xms6m
メモリー割り当てプールの最大サイズをバイト数で指定します。指定する値は、2M バイトより大きい 1024 の倍数にしなければなりません。K バイトを指定するには文字 k
または K
、M バイトを指定するには文字 m
または M
を付けます。デフォルト値は、実行時にシステムの設定に基づいて選択されます。
サーバー配備の場合、-Xms
と -Xmx
が同一の値に設定されていることがよくあります。「ガベージコレクタエルゴノミクス」を参照してください。http://docs.oracle.com/javase/7/docs/technotes/guides/vm/gc-ergonomics.html
例
-Xmx83886080 -Xmx81920k -Xmx80m
実行中のプログラムのプロファイルを生成し、プロファイルデータを標準出力に出力します。このオプションは、プログラム開発用のユーティリティーとして提供されています。本番稼動システムでの使用を目的としたものではありません。
Java VM によるオペレーティングシステムシグナルの使用を減らします。
以前のリリースで、Java アプリケーションを正規の手順に従ってシャットダウンするためのシャットダウンフック機能が追加されました。この機能により、Java VM が突然終了した場合でも、シャットダウン時にユーザークリーンアップコード (データベース接続のクローズなど) を実行できるようになりました。
Java VM は、コンソール制御イベントを監視して Java VM の突然の終了を検知することにより、シャットダウンのフックを実現します。具体的には、Java VM は、シャットダウンフック処理を開始するコンソール制御ハンドラを登録し、CTRL_C_EVENT
、CTRL_CLOSE_EVENT
、CTRL_LOGOFF_EVENT
、および CTRL_SHUTDOWN_EVENT
に対して TRUE を返します。
JVM は、デバッグ用のスレッドスタックをダンプする機能を実現するためにも、同様のメカニズムを使用します。JVM は、スレッドダンプを実行するために CTRL_BREAK_EVENT
を使用します。
Java VM がサービス (Web サーバー用のサーブレットエンジンなど) として実行されている場合、Java VM は CTRL_LOGOFF_EVENT
を受け取ってもシャットダウン処理を開始するべきではありません。これは、オペレーティングシステムが実際にはプロセスを終了させないためです。このような障害の可能性を避けるため、J2SE 1.3.1 以降では -Xrs
コマンド行オプションが追加されました。Java VM で -Xrs option
オプションを使用すると、Java VM はコンソール制御ハンドラをインストールしないため、CTRL_C_EVENT
、CTRL_CLOSE_EVENT
、CTRL_LOGOFF_EVENT
、および CTRL_SHUTDOWN_EVENT
の監視や処理は行われません。
-Xrs
を指定した場合は、2 つの影響があります。
Ctrl + Break キーによるスレッドダンプを利用できない
シャットダウンフック処理の実行は、Java VM が終了しようとしている時点で System.exit()
を呼び出すなどして、ユーザーコード側で行う必要がある。
スレッドのスタックサイズを設定します。
割り当て中に使用されるプリフェッチのスタイルを設定します。デフォルトは 2 です。
積極的な最適化を有効にします。
コマンド (jmap
や jconsole
など) が Java VM に接続できるかどうかを指定します。デフォルトでは、この機能は無効になっています。つまり、接続は有効です。例を示します。
java -XX:+DisableAttachMechanism
アプリケーション実行時の Java Flight Recorder (JFR) の使用を切り替えます。これは、次のように -XX:+UnlockCommercialFeatures
オプションを同時に指定する必要がある商用機能です。
java -XX:UnlockCommercialFeatures -XX:+FlightRecorder
JFR の動作を制御するパラメータを設定します。このオプションは、JFR が有効になっている (つまり、-XX:+FlightRecorder
オプションが指定されている) 場合にのみ使用できます。
次のリストには、使用可能なすべての JFR パラメータが含まれています。
記録が連続的バックグラウンド記録なのか、限られた期間だけ実行するのかを指定します。デフォルトでは、このパラメータは false
(限られた期間だけ記録を実行する) に設定されます。記録を連続的に実行するには、このパラメータを true
に設定します。
JFR が連続的な記録をディスクに書き込むべきかどうかを指定します。デフォルトでは、このパラメータは false
(ディスクへの連続的な記録を無効にする) に設定されます。有効にするには、このパラメータを true
に設定し、同時に defaultrecording=true
に設定します。
制御された方法で JVM が終了するときに、JFR データのダンプファイルを生成するべきかどうかを指定します。デフォルトでは、このパラメータは false
(終了時にダンプファイルを生成しない) に設定されます。有効にするには、このパラメータを true
に設定し、同時に defaultrecording=true
に設定します。
ダンプファイルは、dumponexitpath
パラメータによって定義された場所に書き込まれます。
制御された方法で JVM が終了するとき (dumponexit=true
パラメータを設定した場合) に作成される、JFR データを含むダンプファイルのパスと名前を指定します。このパスの設定は、同時に defaultrecording=true
を設定した場合にのみ有効です。
指定されたパスがディレクトリの場合、JVM は作成日時を示すファイル名を割り当てます。指定されたパスにファイル名が含まれており、そのファイルがすでに存在する場合、JVM は指定されたファイル名に日時スタンプを追加して新しいファイルを作成します。
データの保持に使用されるプライマリメモリーの合計量 (バイト単位) を指定します。K バイト単位のサイズを指定するには k
または K
、M バイト単位のサイズを指定するには m
または M
、G バイト単位のサイズを指定するには g
または G
を付けます。デフォルトでは、このサイズは 462848 バイトに設定されます。
JFR によってログファイルに書き込まれるデータの量を指定します。デフォルトでは、info
に設定されます。
デフォルト記録のディスクデータの最大期間 (分単位) を指定します。デフォルトでは、最大期間は 15 分に設定されます。このパラメータは、disk=true
パラメータを設定した場合にのみ有効です。
記録のデータチャンクの最大サイズ (バイト単位) を指定します。K バイト単位のサイズを指定するには k
または K
、M バイト単位のサイズを指定するには m
または M
、G バイト単位のサイズを指定するには g
または G
を付けます。デフォルトでは、データチャンクの最大サイズは 12M バイトに設定されます。
デフォルト記録のディスクデータの最大サイズ (バイト単位) を指定します。K バイト単位のサイズを指定するには k
または K
、M バイト単位のサイズを指定するには m
または M
、G バイト単位のサイズを指定するには g
または G
を付けます。デフォルトでは、ディスクデータの最大サイズは無制限です。
このパラメータは、disk=true
パラメータを設定した場合にのみ有効です。
一時ディスクストレージのリポジトリ (ディレクトリ) を指定します。デフォルトでは、システムの一時ディレクトリが使用されます。
スレッドサンプリングを有効にするかどうかを指定します。スレッドサンプリングは、このパラメータとともにサンプリングイベントが有効になっている場合にのみ実行されます。デフォルトでは、このパラメータは有効になっています。
イベント設定ファイル (種類は JFC) のパスと名前を指定します。デフォルトでは、JAVA_HOME/jre/lib/jfr
にある default.jfc
ファイルが使用されます。
JFR によるスタックトレースのスタックの深さ。デフォルトでは、この深さは 64 回のメソッド呼び出しに設定されます。最大は 2048、最小は 1 です。
スレッドごとのローカルバッファーサイズ (バイト単位) を指定します。K バイト単位のサイズを指定するには k
または K
、M バイト単位のサイズを指定するには m
または M
、G バイト単位のサイズを指定するには g
または G
を付けます。このパラメータの値を大きくすると、グローバルストレージへのフラッシュと競合せずに、より多くのデータを収集できます。スレッドリッチ環境でアプリケーションフットプリントが増加する場合があります。デフォルトでは、ローカルバッファーサイズは 5K バイトに設定されます。
複数のパラメータの値を指定するには、それらをコロンで区切ります。たとえば、連続的な記録をディスクに書き込むように JFR に指示し、データチャンクの最大サイズを 10M バイトに設定するには、次を指定します。
-XX:FlightRecorderOptions=defaultrecording=true,disk=true,maxchunksize=10M
ラージページの最大サイズを指定します。
最大 GC 一時停止時間の目標を設定します。
これはソフトゴールのため、Java VM は実現のために最善の努力をします。デフォルトで設定されている最大値はありません。
若い世代 (ナーサリ) のサイズを設定します。-Xmnsize
と同じです。
パラレルコレクタ内の GC スレッドの数を設定します。
このオプションを使用するには、最初に UnlockExperimentalVMOptions
フラグを設定する必要があります。アプリケーションが多数のクラスをロードする場合、特に class.forName()
が頻繁に使用される場合は、PredictedClassLoadCount
フラグを使用します。推奨値は、-verbose:class
の出力に示されるロード済みクラスの数です。
例:
java -XX:+UnlockExperimentalVMOptions -XX:PredictedClassLoadCount=60013
Java HotSpot VM ダイナミックランタイムコンパイラからの詳細出力を出力します。
ガベージコレクション出力をタイムスタンプとともに出力します。
このフラグは、ソフトウェア参照の積極的な処理を有効にします。このフラグは、Java HotSpot VM ガベージコレクタがソフトウェア参照カウントの影響を受ける場合に使用します。
Java アプリケーションの JFR 記録を開始します。このオプションは、実行時に記録を開始する JFR.start
診断コマンドと同等です。JFR 記録を開始するときに、次のパラメータを設定できます。
gzip
ファイル圧縮ユーティリティーを使用してディスク上の JFR 記録ログファイル (種類は JFR) を圧縮するかどうかを指定します。このパラメータは、filename
パラメータが指定されている場合にのみ有効です。デフォルトでは、false
(記録を圧縮しない) に設定されます。圧縮を有効にするには、このパラメータを true
に設定します。
記録が連続的バックグラウンド記録なのか、限られた期間だけ実行するのかを指定します。デフォルトでは、このパラメータは false
(限られた期間だけ記録を実行する) に設定されます。記録を連続的に実行するには、このパラメータを true
に設定します。
Java アプリケーションが起動してから記録を開始するまでの遅延時間 (ミリ秒単位) を指定します。デフォルトでは、遅延はなく、このパラメータは 0 に設定されます。
記録の継続時間 (ミリ秒単位) を指定します。デフォルトでは、この継続時間は無制限です。
JFR 記録ログファイルのパスと名前を指定します。
JFR 記録の識別子を返します。デフォルトでは、Recording x
に設定されます。
デフォルト記録のディスクデータの最大期間 (分単位) を指定します。デフォルトでは、最大期間は 15 分に設定されます。
記録がスレッドバッファーからグローバルバッファーにフラッシュされるまでの最大サイズ (バイト単位) を指定します。K バイト単位のサイズを指定するには k
または K
、M バイト単位のサイズを指定するには m
または M
、G バイト単位のサイズを指定するには g
または G
を付けます。デフォルトでは、最大サイズは無制限です。
このパラメータは、サイズが制約された記録の場合にのみ有効です。
イベント設定ファイル (種類は JFC) のパスと名前を指定します。デフォルトでは、JAVA_HOME/jre/lib/jfr
にある default.jfc
ファイルが使用されます。
複数のパラメータの値を指定するには、それらをコロンで区切ります。たとえば、現在の作業ディレクトリ内の test.jfr に記録を保存し、ログファイルを圧縮するように JFR に指示するには、次を指定します。
-XX:StartFlightRecording=filename=test.jfr,compress=true
Java HotSpot VM では、スレッドローカル割り当てバッファー (TLAB) がデフォルトで有効になっています。Java HotSpot VM は、TLAB のサイズを割り当てパターンに基づいて決定します。-XX:TLABSize
オプションを使用して、TLAB のサイズを微調整できます。
このフラグは、商用機能の使用を能動的にロック解除するために使用します。商用機能とは、Java SE Products Web ページで定義されている製品「Oracle Java SE Advanced」または「Oracle Java SE Suite」のことです。
このフラグが指定されていない場合は、デフォルトで、使用可能な商用機能なしで Java 仮想マシンが実行されます。有効にしたあとで、実行時にその使用を無効にすることはできません。
64 ビット Java VM で圧縮参照を有効にします。
このオプションはデフォルトで true になっています。
Concurrent Mark Sweep (CMS) または G1 ガベージコレクタを有効にします。
ラージページのサポートを有効にします。
パラレルガベージコレクタを有効にします。パラレルガベージコレクタは、スループットおよび平均レスポンス時間に関して最適化されます。
-version:release オプションでは、どんなに複雑にリリースを指定してもかまいません。ただし、現実的なリリース指定の限られたサブセットを使用するだけでも適切なポリシーを表現できるため、それらのサブセットのみが完全にサポートされます。それらのポリシーを次に示します。
任意のバージョン。これは、このオプションを使用しないことで表現できます。
ある特定のバージョン ID 値よりも大きい任意のバージョン。例を示します。
"1.6.0_10+"
この場合、1.6.0_10 よりも大きい任意のバージョンが使用されます。これは、指定されたバージョンで特定のインタフェースが導入された (あるいはそのバグが修正された) 場合に便利です。
ある特定のバージョン ID よりも大きいバージョン。ただし、そのリリースファミリの上限によって制限するもの。例を示します。
"1.6.0_10+&1.6*"
項目 2 または 3 の or
表現。例を示します。
"1.6.0_10+&1.6* 1.7+"
これは項目 2 に似ていますが、ある変更が特定のリリース (1.7) で導入されたが、その同じ変更が以前のリリースのアップデートでも利用可能になった、という場合に便利です。
次の例は、スループットまたはレスポンス時間を最適化する試験的なチューニングフラグの使用方法を示しています。
java -d64 -server -XX:+AggressiveOpts -XX:+UseLargePages -Xmn10g -Xms26g -Xmx26g
java -d64 -XX:+UseG1GC -Xms26g Xmx26g -XX:MaxGCPauseMillis=500 -XX:+PrintGCTimeStamps
一般に起動元から次の終了値が返されるのは、通常、起動元が不正な引数で呼び出されたか、深刻なエラーが発生したか、または Java 仮想マシンから例外がスローされた場合です。ただし、Java アプリケーションは API 呼び出し System.exit(exitValue)
を使用して任意の値を返す可能性があります。
0
: 正常終了。
>0
: エラーが発生した。