java(1)

NAME
java - Javaアプリケーションを起動します。

形式

    java [ options ] class [ argument ... ]
    java [ options ] -jar file.jar [ argument ... ]

オプション
    コマンドライン・オプション。オプションを参照してください。

クラス
    コールするクラスの名前。

file.jar
    コールする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関数に渡されます。

オプション

起動ツールには、現在のランタイム環境でサポートされる標準オプションのセットがあります。

また、仮想マシンの現在の実装では、非標準オプションのセットもサポートされます。これは、将来のリリースで変更される可能性があります。非標準オプションを参照してください。

  標準オプション

-client
    Java HotSpot VMクライアントを選択します。64ビット対応JDKは現時点では、このオプションを無視し、かわりにJava Hotspot Server VMを使用します。

    デフォルトのJava VM選択は、次の「サーバークラス・マシンの検出」ページを参照してください: http://docs.oracle.com/javase/7/docs/technotes/guides/vm/server-class.html

-server
    Java HotSpot VMサーバーを選択します。64ビット対応JDK上では、サポートされるのはJava Hotspot Server VMのみであるため、-serverオプションが暗黙的に選択されます。

    デフォルトのJava VM選択は、次の「サーバークラス・マシンの検出」ページを参照してください: http://docs.oracle.com/javase/7/docs/technotes/guides/vm/server-class.html

-agentlib:libname[=options]
    次の例のようなネイティブ・エージェント・ライブラリlibnameをロードします。

        -agentlib:hprof

        -agentlib:jdwp=help

        -agentlib:hprof=help
    次の「JVMTIエージェント・コマンドライン・オプション」を参照してください: http://docs.oracle.com/javase/7/docs/platform/jvmti/jvmti.html#starting

-agentpath:pathname[=options]
    フルパス名を使用して、ネイティブ・エージェント・ライブラリをロードします。次の「JVMTIコマンドライン・オプション」を参照してください: http://docs.oracle.com/javase/7/docs/platform/jvmti/jvmti.html#starting

-classpath classpath, -cp classpath
    クラス・ファイルを検索するディレクトリ、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")をコールして問い合せる場合です。

-Dproperty=value
    システム・プロパティの値を設定します。

-d32
    アプリケーションを32ビット環境で実行します。32ビット環境がインストールされていないかサポートされていない場合は、エラーが報告されます。デフォルトでは、64ビット専用システムが使用されている場合を除き、アプリケーションは32ビット環境で実行されます。

-d64
    アプリケーションを64ビット環境で実行します。64ビット環境がインストールされていないかサポートされていない場合は、エラーが報告されます。デフォルトでは、64ビット専用システムが使用されている場合を除き、アプリケーションは32ビット環境で実行されます。

    現在のところ、Java HotSpot Server VMのみが64ビットの操作をサポートしているため、-d64使用時には-serverオプションが暗黙的に使用されます。-d64使用時には、-clientオプションは無視されます。この仕様は、将来のリリースでは変更になる可能性があります。

-disableassertions[:package name"..." | :class name ], -da[:package name"..." | :class name ]
    アサーションを無効にします。これがデフォルトです。

    引数なしのdisableassertionsまたは-daを指定すると、アサーションが無効になります。「...」で終わる引数を1つ指定すると、指定したパッケージとそのサブパッケージ内でアサーションが無効になります。引数として"..."を指定すると、現在の作業ディレクトリにある名前のないパッケージ内でアサーションが無効になります。「...」で終わらない引数を1つ指定すると、指定したクラス内でアサーションが無効になります。

    パッケージcom.wombat.fruitbat内ではアサーションを有効にし、クラスcom.wombat.fruitbat.Brickbat内ではアサーションを無効にしたうえで、プログラムを実行するには、次のようなコマンドを使用します。

        java -ea:com.wombat.fruitbat... -da:com.wombat.fruitbat.Brickbat <Main Class>
    -disableassertionsおよび-daスイッチは、すべてのクラス・ローダーおよびシステム・クラスに適用されます。システム・クラスにはクラス・ローダーはありません。ただし、このルールには1つ例外があります。それは、引数なしの形式でこのスイッチを指定すると、その指定がシステムに適用されない、ということです。この例外を利用すれば、システム・クラスを除くすべてのクラスでアサーションを簡単に有効にすることができます。-disablesystemassertionsオプションは、すべてのシステム・クラスでアサーションを有効にする別のスイッチを提供します。

-enableassertions[:package name"..." | :class name ], -ea[:package name"..." | :class name ]
    アサーションを有効にします。アサーションは、デフォルトでは無効になっています。

    引数なしのenableassertionsまたは-eaを指定すると、アサーションが有効になります。「...」で終わる引数を1つ指定すると、指定したパッケージとそのサブパッケージ内でアサーションが有効になります。引数として"..."を指定すると、現在の作業ディレクトリにある名前のないパッケージ内でアサーションが有効になります。「...」で終わらない引数を1つ指定すると、指定したクラス内でアサーションが有効になります。

    単一コマンドにこれらのスイッチのインスタンスを複数指定した場合は、指定したスイッチが順番に処理されてからクラスがロードされます。したがって、たとえば、パッケージcom.wombat.fruitbat(サブパッケージを含む)内でのみアサーションを有効にしてプログラムを実行するには、次のようなコマンドを使用します。

        java -ea:com.wombat.fruitbat... <Main Class>
    -enableassertionsおよび-eaスイッチは、すべてのクラス・ローダーおよびシステム・クラスに適用されます。システム・クラスにはクラス・ローダーはありません。ただし、このルールには1つ例外があります。それは、引数なしの形式でこのスイッチを指定すると、その指定がシステムに適用されない、ということです。この例外を利用すれば、システム・クラスを除くすべてのクラスでアサーションを簡単に有効にすることができます。-enablesystemassertionsオプションは、すべてのシステム・クラスでアサーションを有効にする別のスイッチを提供します。

-enablesystemassertions, -esa
    すべてのシステム・クラス内でアサーションを有効にします。つまり、システム・クラスについてアサーションのデフォルト・ステータスをtrueに設定します。

-disablesystemassertions, -dsa
    すべてのシステム・クラス内でアサーションを無効にします。

-helpまたは-?
    使用方法を表示して終了します。

-jar
    JARファイルにカプセル化されたプログラムを実行します。最初の引数は、起動クラスの名前ではなく、JARファイルの名前にします。このオプションが機能するには、JARファイルのマニフェストにMain-Class: classnameという形式の行を指定する必要があります。classnameには、アプリケーションの開始位置として機能するpublic static void main(String[] args)メソッドを含むクラスを指定します。

    このオプションを使用すると、指定したJARファイルがすべてのユーザー・クラスのソースになり、ユーザー・クラス・パスの他の設定は無視されます。

    java -jarオプションで実行できるJARファイルは、実行権限のセットを保持しています。このため、java -jarを使用しないで実行することも可能です。次の「JARファイルの概要」を参照してください: http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jarGuide.html

-javaagent:jarpath[=options]
    Javaプログラミング言語エージェントをロードします。

-jre-restrict-search
    ユーザー・プライベートなJREをバージョン検索に含めます。

-no-jre-restrict-search
    ユーザー・プライベートなJREをバージョン検索から除外します。

-showversion
    バージョン情報を表示して続行します。(も参照してください。)

-splash:imagepath
    imagepathに指定された画像を含むスプラッシュ画面を表示します。

-verbose, -verbose:class
    クラスがロードされるたびにクラスに関する情報を表示します。

-verbose:gc
    ガベージ・コレクション・イベントが発生するたびに報告します。

-verbose:jni
    ネイティブ・メソッドの使用およびその他のJava Native Interfaceアクティビティに関する情報を報告します。

-version
    バージョン情報を表示して終了します。-showversionオプションも参照してください。

-version:release
    コマンドラインに指定されたクラスまたは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をバージョンIDプレフィックスに持つ1.6.0_10以上のバージョンをクラスまたはJARファイルが必要としている、ということです。バージョン文字列の厳密な構文や定義については、「Javaネットワーク起動プロトコル & API仕様(JSR-56)」の「付録A」を参照してください。

    JARファイルの場合は、バージョン要件をコマンドラインに指定するよりも、JARファイルのマニフェスト内に指定することが推奨されています。

    このオプションの使用に関する重要なポリシー情報は、注意を参照してください。

  非標準オプション

-X
    非標準オプションに関する情報を表示して終了します。

-Xint
    インタプリタ専用モードで動作します。ネイティブ・コードへのコンパイルは無効になり、すべてのバイトコードがインタプリタによって実行されます。Java HotSpot VMクライアントに対応するコンパイラが提供するパフォーマンス上の利点は、このモードでは実現されません。

-Xbatch
    バックグラウンド・コンパイルを無効にします。通常、Java VMでは、バックグラウンド・コンパイルが終了するまで、メソッドをバックグラウンド・タスクとしてコンパイルし、インタプリタ・モードでメソッドを実行します。-Xbatchフラグを指定すると、バックグラウンド・コンパイルが無効になり、すべてのメソッドのコンパイルが完了するまでフォアグラウンド・タスクとして処理されます。

-Xbootclasspath:bootclasspath
    ブート・クラス・ファイルを検索するディレクトリ、JARファイルおよびZIPアーカイブのコロンで区切られたリストを指定します。指定したパスに存在するブート・クラス・ファイルが、JavaプラットフォームJDKに含まれるブート・クラス・ファイルのかわりに使用されます。

    rt.jar内のクラスをオーバーライドする目的でこのオプションを使用するアプリケーションは、システムに配置しないでください。Java Runtime Environmentバイナリ・コード・ライセンス違反になります。

-Xbootclasspath/a:path
    ディレクトリ、JARファイルおよびZIPアーカイブのパスをコロンで区切って指定します。パスはデフォルトのブートストラップ・クラス・パスの後に追加されます。

-Xbootclasspath/p:path
    ディレクトリ、JARファイルおよびZIPアーカイブのパスをコロンで区切って指定します。パスはデフォルトのブートストラップ・クラス・パスの前に追加されます。

    rt.jar内のクラスをオーバーライドする目的で、このオプションを使用するアプリケーションをデプロイしないでください。Java Runtime Environmentバイナリ・コード・ライセンスに違反します。

-Xcheck:jni
    Java Native Interface (JNI)機能に対して追加チェックを行います。具体的には、Java仮想マシンはJNIリクエストを処理する前に、JNI関数に渡されるパラメータと、実行環境のデータを検証します。無効なデータが見つかった場合は、ネイティブ・コードに問題があることを示しているため、Java仮想マシンは致命的エラーを発生して終了します。このオプションを使用すると、パフォーマンス低下が予想されます。

-Xfuture
    クラスとファイルの形式を厳密にチェックします。下位互換性を保つため、SDK仮想マシンが実行するデフォルトの形式チェックは、JDKソフトウェアのバージョン1.1.xが実行するチェックと同程度の厳密さになっています。-Xfutureオプションを指定すると、クラス・ファイル形式の仕様への準拠を強化するためのより厳密なチェックが有効になります。Javaアプリケーション起動ツールの将来のリリースでは、より厳密なチェックがデフォルトになるため、新しいコードを開発するときにはこのフラグを使用することをお薦めします。

-Xnoclassgc
    クラスのガベージ・コレクションを無効にします。このオプションを使用すると、ロード済クラスからメモリーが回復されることがなくなるため、全体的なメモリー使用量が増大します。この場合、アプリケーションによってはOutOfMemoryErrorがスローされる可能性があります。

-Xincgc
    インクリメンタル・ガベージ・コレクタを有効にします。インクリメンタル・ガベージ・コレクタは、デフォルトでは無効になっています。有効にすると、プログラムの実行中にガベージ・コレクションによる一時停止が発生しなくなります。インクリメンタル・ガベージ・コレクタは、プログラムと同時に実行することがあり、この場合、プログラムの利用できるプロセッサ能力が低下します。

-Xloggc:file
    -verbose:gcと同様にガベージ・コレクション・イベントが発生するたびに報告しますが、そのデータをファイルに記録します。-verbose:gcを指定したときに報告される情報の他に、報告される各イベントの先頭に、最初のガベージ・コレクション・イベントからの経過時間(秒単位)が付け加えられます。

    ネットワークのレスポンス時間によってJava VMの実行速度が低下するのを避けるため、このファイルの格納先は、常にローカル・ファイル・システムにしてください。ファイル・システムが満杯になると、ファイルは切り詰められ、そのファイルにデータが引続き記録されます。このオプションと-verbose:gcの両方がコマンドラインに指定されている場合は、このオプションが優先されます。

-Xmnsizeまたは-XX:NewSize
    若い世代(ナーサリ)のサイズを設定します。

-Xmsn
    メモリー割当てプールの初期サイズをバイト数で指定します。指定する値は、1MBより大きい1024の倍数にする必要があります。キロバイトを指定するには、文字kまたはKを付けます。メガバイトを指定するには、文字mまたはMを付けます。デフォルト値は、実行時にシステム構成に基づいて選択されます。次の「ガベージ・コレクタのエルゴノミクス」を参照してください: http://docs.oracle.com/javase/7/docs/technotes/guide/vm/gc-ergonomics.html

    例:

        -Xms6291456
        -Xms6144k
        -Xms6m

-Xmxn
    メモリー割当てプールの最大サイズをバイト数で指定します。指定する値は、2MBより大きい1024の倍数にする必要があります。キロバイトを指定するには、文字kまたはKを付けます。メガバイトを指定するには、文字mまたはMを付けます。デフォルト値は、実行時にシステム構成に基づいて選択されます。

    サーバー・デプロイメントでは、-Xmsおよび-Xmxは通常同じ値に設定されます。次の「ガベージ・コレクタのエルゴノミクス」を参照してください: http://docs.oracle.com/javase/7/docs/technotes/guide/vm/gc-ergonomics.html

    例:

        -Xmx83886080
        -Xmx81920k
        -Xmx80m
    Solaris 7およびSolaris 8 SPARCプラットフォームの場合のこの値の上限は、およそ4000mからオーバーヘッドの量を引いたものです。Solaris 2.6およびx86プラットフォームの場合の上限は、およそ2000mからオーバーヘッドの量を引いたものです。Linuxプラットフォームの場合の上限は、およそ2000mからオーバーヘッドの量を引いたものです。

-Xprof
    実行中のプログラムのプロファイルを生成し、プロファイル・データを標準出力に出力します。このオプションは、プログラム開発用のユーティリティとして提供されています。本番稼働システムでの使用を目的としたものではありません。

-Xrs
    Java VMによるオペレーティング・システム・シグナルの使用を減らします。

    以前のリリースでは、Javaアプリケーションを秩序正しくシャットダウンするためのシャットダウン・フック機能が追加されました。この機能により、Java VMが突然終了した場合でも、シャットダウン時にユーザー・クリーン・アップコード(データベース接続のクローズなど)を実行できるようになりました。

    Java VMは、予期しないJava VM終了のシャットダウン・フックを実装するためにシグナルをキャッチします。Java VMは、SIGHUP、SIGINTおよびSIGTERMを使用してシャットダウン・フックの実行を開始します。

    JVMは、デバッグの目的でスレッド・スタックをダンプするという機能を実現するために、同様のメカニズムを使用します。JVMは、スレッド・ダンプを実行するためにSIGQUITを使用します。

    Java VMを埋め込んでいるアプリケーションはSIGINTやSIGTERMなどのシグナルを頻繁にトラップする必要があり、その結果Java VMのシグナル・ハンドラと衝突する可能性があります。-Xrsコマンドライン・オプションを使用すると、この問題に対処できます。-XrsがJava VMで使用されている場合、SIGINT、SIGTERM、SIGHUPおよびSIGQUITのシグナル・マスクはJava VMによって変更されず、これらのシグナルのシグナル・ハンドラはインストールされません。

    -Xrsを指定すると、次の2つの結果が生じます:

        • SIGQUITによるスレッド・ダンプは使用できません。

        • シャットダウン・フック処理の実行は、Java VMが終了しようとしている時点でSystem.exit()を呼び出すなどして、ユーザー・コード側で行う必要があります。

-Xssn
    スレッドのスタック・サイズを設定します。

-XX:AllocationPrefetchStyle=n
    割当中に使用されるプリフェッチのスタイルを設定します。デフォルトは2です。

-XX:+AggressiveOpts
    積極的な最適化を有効にします。

-XX:+|-DisableAttachMechanism
    コマンド(jmapやjconsoleなど)がJava VMに接続できるかどうかを指定します。デフォルトでは、この機能は無効になっています。つまり、次の例のように接続が有効です。

        java -XX:+DisableAttachMechanism

-XX:+|-FlightRecorder
    アプリケーションの実行中に、Javaフライト・レコーダ(JFR)の使用を切り替えます。これは商用機能で、-XX:+UnlockCommercialFeaturesオプションを次のように指定することも必要になります。

        java -XX:UnlockCommercialFeatures -XX:+FlightRecorder

-XX:FlightRecorderOptions=parameter=value
    JFRの動作を制御するパラメータを設定します。このオプションを使用できるのは、JFRが有効な場合(-XX:+FlightRecorderオプションが指定されている場合)のみです。

    次のリストには、使用可能なすべてのJFRパラメータが含まれます。

    defaultrecording=true|false
        バックグラウンド記録が有効かどうかを指定します。デフォルトでは、このパラメータはfalse (バックグラウンド記録は無効)に設定されています。有効にするには、パラメータをtrueに設定します。

    disk=true|false
        JFRでディスクに連続記録を書き込む必要があるかどうかを指定します。デフォルトでは、このパラメータはfalse (ディスクへの連続記録は無効)に設定されています。有効にするには、パラメータをtrueに設定します。

    dumponexit=true|false
        JVMが制御された方式で終了したときに、JFRデータのダンプ・ファイルを生成するかどうかを指定します。デフォルトでは、このパラメータはfalse (終了時にダンプ・ファイルは生成されない)に設定されています。有効にするには、パラメータをtrueに設定します。

        ダンプ・ファイルは、dumponexitpathパラメータによって指定された場所に書き込まれます。

    dumponexitpath=path
        dumponexit=trueパラメータが設定されている場合に、JVMが制御された方式で終了するときに作成される、JFRデータを含むダンプ・ファイルのパスと名前を指定します。指定したパスがディレクトリの場合、JVMは作成日時を示すファイル名を割り当てます。指定したパスにすでに存在するファイルのファイル名が含まれる場合、指定したファイル名に日付およびタイム・スタンプを追加して新しいファイルが作成されます。

    globalbuffersize=size
        データ保存に使用する総プライマリ・メモリー量(MB単位)を指定します。デフォルトでは、サイズは10MBに設定されています。

    maxage=time
        デフォルト記録のディスク・データの最大保持時間(分単位)を指定します。デフォルトでは、最大保持時間は15分に設定されています。このパラメータは、disk=trueパラメータが設定されている場合のみ有効です。

    maxchunksize=size
        記録内のデータ・チャンクの最大サイズ(MB単位)を指定します。デフォルトでは、データ・チャンクの最大サイズは12MBに設定されています。

    maxsize=size
        デフォルト記録のディスク・データの最大サイズ(MB単位)を指定します。デフォルトでは、ディスク・データの最大サイズは制限されていません。

        このパラメータは、disk=trueパラメータが設定されている場合にのみ有効です。

    repository=path
        一時ディスク記憶域のリポジトリ(ディレクトリ)を指定します。デフォルトでは、システムの一時ディレクトリが使用されます。

    settings=path
        イベント設定ファイル(タイプはJFS)のパスと名前を指定します。デフォルトでは、JAVA_HOME/jre/lib/jfrにあるdefault.jfsファイルが使用されます。

    threadbuffersize=size
        スレッドごとのローカル・バッファ・サイズ(KB単位)を指定します。このパラメータの値が高いと、競合することなく、より多くのデータを収集してグローバル記憶域にフラッシュすることができます。スレッドが多い環境ではアプリケーションのフットプリントも増加します。デフォルトでは、ローカル・バッファ・サイズは5KBに設定されています。

    カンマで区切って、複数のパラメータの値を指定できます。たとえば、ディスクに連続記録を書き込み、データ・チャンクの最大サイズを10MBに設定するようにJFRに指示するには、次のように指定します。

        -XX:FlightRecorderOptions=disk=true,maxchunksize=10M

-XXLargePageSizeInBytes=n
    ラージ・ページの最大サイズを指定します。

-XX:MaxGCPauseMillis=n
    最大GC休止時間のターゲットを設定します。

    これはソフト・ゴールのため、Java VMは実現のために最善の努力をします。デフォルトで設定されている最大値はありません。

-XX:NewSize
    若い世代(ナーサリ)のサイズを設定します。-Xmnsizeと同じです。

-XX:ParallelGCThreads=n
    パラレル・コレクタ内のGCスレッドの数を設定します。

-XX:PredictedClassLoadCount=n
    このオプションでは、最初にUnlockExperimentalVMOptionsフラグを設定する必要があります。アプリケーションが多数のクラスをロードする場合で、特にclass.forName()が頻繁に使用される場合はPredictedClassLoadCountフラグを使用します。推奨値は、-verbose:classからの出力に示されているロード済クラスの数です。

    例:

        java -XX:+UnlockExperimentalVMOptions -XX:PredictedClassLoadCount=60013

-XX:+PrintCompilation
    Java HotSpot VMダイナミック・ランタイム・コンパイラからの詳細出力を印刷します。

-XX:+PrintGCDetails -XX:+PrintGCTimeStamps
    ガベージ・コレクション出力をタイムスタンプとともに印刷します。

-XX:SoftRefLRUPolicyMSPerMB=0
    このフラグは、ソフトウェア参照の積極的処理を有効にします。このフラグは、ソフトウェア参照カウントがJava HotSpot VMガベージ・コレクタに影響する場合に使用します。

-XX:StartFlightRecording=parameter=value
    JavaアプリケーションのJFR記録を開始します。このオプションは、実行時にJFRを起動するstart_flightrecording診断コマンドに相当します。JFR記録の開始時に、次のパラメータを設定できます。

    compress=true|false
        gzipファイル圧縮ユーティリティを使用して、ディスクでJFR記録ログ・ファイル(タイプはJFR)を圧縮するかどうかを指定します。このパラメータは、filenameパラメータが指定されている場合のみ有効です。デフォルトでは、false (記録を圧縮しない)に設定されています。圧縮を有効にするには、パラメータをtrueに設定します。

    defaultrecording=true|false
        記録が連続的か、または限定された時間に対して実行されるかを指定します。デフォルトでは、このパラメータはfalse (記録は限定された時間に対して実行される)に設定されています。記録を連続的に実行するには、パラメータをtrueに設定します。

    delay=time
        Javaアプリケーションの起動時間と記録開始との間の遅延(ミリ秒単位)を指定します。デフォルトでは、遅延は存在せず、このパラメータは0に設定されています。

    duration=time
        記録の期間(ミリ秒単位)を指定します。デフォルトでは、期間は制限されていません。

    filename=path
        JFR記録ログ・ファイルのパスと名前を指定します。

    name=identifier
        JFR記録の識別子を指定します。デフォルトでは、Recording xに設定されています

    maxage=time
        デフォルト記録のディスク・データの最大保持時間(分単位)を指定します。デフォルトでは、最大保持時間は15分に設定されています。

    maxsize=size
        スレッド・バッファからグローバル・バッファにフラッシュされるまでの、記録の最大サイズ(MB単位)を指定します。デフォルトでは、最大サイズは制限されていません。

        このパラメータは、サイズが制限された記録の場合のみ有効です。

    settings=path
        イベント設定ファイル(タイプはJFS)のパスと名前を指定します。デフォルトでは、JAVA_HOME/jre/lib/jfrにあるdefault.jfsファイルが使用されます。

    カンマで区切って、複数のパラメータの値を指定できます。たとえば、記録を現在の作業ディレクトリのtest.jfrに保存し、ログ・ファイルを圧縮するようJFRに指示するには、次のように指定します。

        -XX:StartFlightRecording=filename=test.jfr,compress=true

-XX:TLABSize=n
    スレッド・ローカル割当てバッファ(TLAB)がJava HotSpot VMでデフォルトで有効になっています。Java HotSpot VMでは、TLABのサイズを割当てパターンに基づいて決定します。-XX:TLABSizeオプションでTLABのサイズを微調整できます。

-XX:+UnlockCommercialFeatures
    このフラグは、商用機能の使用を能動的にロック解除する場合に使用します。商用機能とは、「Java SE Products」Webページで規定されているとおり、Oracle Java SE Advanced製品またはOracle Java SE Suite製品です。

    このフラグが指定されていない場合、デフォルトはJava仮想マシンを使用可能な商用機能なしで実行することです。それらを有効にした後、実行時にそれらの使用を無効にすることはできません。

-XX:+UseAltSigs
    Java VMではデフォルトでSIGUSR1およびSIGUSR2を使用しますが、SIGUSR1およびSIGUSR2をシグナル連鎖するアプリケーションと競合する場合があります。-XX:+UseAltSigsオプションを指定すると、Java VMはデフォルトとしてSIGUSR1とSIGUSR2以外のシグナルを使用します。

-XX:+|-UseCompressedOops
    64ビットJava VMで圧縮された参照を有効にします。

    このオプションは、デフォルトでtrueになります。

-XX:+UseConcMarkSweepGCまたは-XX:+UseG1GC
    Concurrent Mark Sweep (CMS)またはG1ガベージ・コレクションを有効にします。

-XX:+|-UseLargePages
    ラージ・ページ・サポートを有効にします。

    ラージ・ページは、Solarisではデフォルトで有効になっています。

-XX:+UseParallelOldGC
    パラレル・ガベージ・コレクタを有効にします。これはスループットおよび平均レスポンス時間に対して最適化されます。

注意

-version:releaseオプションでは、リリース指定の複雑さに制限はありません。ただし、可能なリリース指定の限られたサブセットのみが適切なサウンド・ポリシーを表現でき、それらのみが完全にサポートされます。それらのポリシーを次に示します。

    1. 任意のバージョン。これは、このオプションを使用しないことで表現できます。

    2. 次の例のように、ある特定のバージョンID値よりも大きい任意のバージョン。

        "1.6.0_10+"
    この場合、1.6.0_10よりも大きい任意のバージョンが使用されます。これは、指定されたバージョンで特定のインタフェースが導入された(あるいはそのバグが修正された)場合に便利です。

    3. 次の例のように、ある特定のバージョンIDよりも大きいバージョンで、そのリリース・ファミリの上限によって制限されるもの。

        "1.6.0_10+ & 1.6*"

    4. 次の例のように、項目2または3のor式。

         "1.6.0_10+ & 1.6* 1.7+"
    項目2と同様です。これは、ある変更が特定のリリース(1.7)で導入されたが、その同じ変更が以前のリリースのアップデートでも利用可能になった、という場合に便利です。

パフォーマンス・チューニングの例

スループットまたはレスポンス時間の高速化のどちらかを最適化するための、試験的なチューニング・フラグの使用例を次に示します。

Example 1, スループットを向上するためのチューニング

        java -d64 -server -XX:+AggressiveOpts -XX:+UseLargePages -Xmn10g  -Xms26g -Xmx26g

Example 2, レスポンス時間を速くするためのチューニング

         java -d64 -XX:+UseG1GC -Xms26g Xmx26g -XX:MaxGCPauseMillis=500 -XX:+PrintGCTimeStamps

終了ステータス

一般に、次の終了値が起動ツールから返されるのは通常、起動元が不正な引数で呼び出されたか、深刻なエラーが発生したか、あるいはJava仮想マシンから例外がスローされた場合です。ただしJavaアプリケーションは、API呼出しSystem.exit(exitValue)を使用して任意の値を返すことを選択することもできます。

    • 0: 正常終了

    • >0: エラー発生

関連項目

    • javac [SolarisおよびLinux] [Windows]

    • jdb [SolarisおよびLinux] [Windows]

    • javah [SolarisおよびLinux] [Windows]

    • jar [SolarisおよびLinux] [Windows]