java [ options ] class [ argument ... ] java [ options ] -jar file.jar [ argument ... ] javaw [ options ] class [ argument ... ] javaw [ options ] -jar file.jar [ argument ... ]
options
- コマンド行オプション
class
- 呼び出されるクラスの名前
file.jar
- 呼び出される JAR ファイルの名前。必ず
-jar
とともに使用するargument
- main 関数に渡される引数
java ツールは、Java アプリケーションを起動します。java ツールは、Java Runtime Environment を起動したあと、指定されたクラスをロードし、そのクラスの main メソッドを呼び出すことにより、Java アプリケーションを起動します。このメソッドは、public および static として宣言する必要があります。また、値を返してはなりません。さらに、
String
配列をパラメータとして指定できなければなりません。メソッドの宣言は、次のようになっていなければなりません。public static void main(String args[])デフォルトでは、コマンド行オプション以外の最初の引数が、呼び出されるクラスの名前になります。この名前には、完全指定のクラス名を使用する必要があります。-jar オプションを指定した場合、コマンド行オプション以外の最初の引数が、アプリケーションのクラスファイルとリソースファイルを含む JAR アーカイブの名前になります。この場合、マニフェストの Main-Class ヘッダで指定されたクラスが起動クラスになります。Java Runtime は、ブートストラップクラスパス、インストール型拡張機能、およびユーザクラスパスの 3 箇所から起動クラスと他の使用されているクラスを検索します。
クラス名または JAR ファイル名のあとにある、コマンド行オプション以外の引数は、main 関数に渡されます。
javaw コマンドは、コンソールウィンドウがない以外は、java コマンドと同じです。javaw は、コマンドプロンプトウィンドウを表示する必要がないときに使用します。ただし、javaw 起動ツールでは、何らかの理由で起動に失敗すると、エラー情報を示すダイアログボックスが表示されます。
起動ツールには、現在の実行環境および将来のリリースでサポートされる標準オプションがあります。また、デフォルトの Java HotSpot VM では、非標準オプションのセットも提供されます。これは、将来のリリースで変更される可能性があります。
- -client
- Java HotSpot Client VM を選択します。
詳細については、「サーバ - クラスマシンの検出」を参照してください。
- -server
- Java HotSpot Server VM を選択します。
詳細については、「サーバ - クラスマシンの検出」を参照してください。
- -agentlib:libname[=options]
- ネイティブエージェントライブラリ libname をロードします。たとえば次のように指定します。
-agentlib:hprof
-agentlib:jdwp=help
-agentlib:hprof=help
詳細については、「JVMTI エージェントのコマンド行オプション」を参照してください。
- -agentpath:pathname[=options]
- フルパス名を使用して、ネーティブエージェントライブラリをロードします。詳細については、「JVMTI エージェントのコマンド行オプション」を参照してください。
- -classpath classpath
- -cp classpath
- クラスファイルを検索するディレクトリ、JAR アーカイブ、および ZIP アーカイブのリストを指定します。クラスパスの各エントリは、セミコロン (;) で区切ります。-classpath または -cp を指定すると、このオプションの値によって CLASSPATH 環境変数の設定がオーバーライドされます。
-classpath も -cp も使用されず、CLASSPATH も設定されていない場合、ユーザクラスパスは現在のディレクトリ (
.
) になります。クラスパスの詳細は、「クラスパスの設定」を参照してください。
- -Dproperty=value
- システムプロパティの値を設定します。value が、スペースを含む文字列である場合は、文字列を次のように二重引用符で囲む必要があります。
java -Dfoo="some string" SomeClass- -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 を参照してください。
- -disableassertions[:<package name>"..."| :<class ; ]
- -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 を参照してください。
- -enablesystemassertions
- -esa
- すべてのシステムクラス内でアサーションを有効にします。つまり、システムクラスについてアサーションのデフォルトステータスを true に設定します。
- -disablesystemassertions
- -dsa
- すべてのシステムクラス内でアサーションを無効にします。
- -jar
- JAR ファイルにカプセル化されたプログラムを実行します。最初の引数は、起動クラスの名前ではなく、JAR ファイルの名前にします。このオプションが機能するには、JAR ファイルのマニフェストに「Main-Class:classname」という形式の行を指定する必要があります。ただし、classname には、アプリケーションの開始位置として機能する public static void main(String[] args) メソッドを含むクラスを指定します。JAR ファイルとそのマニフェストについては、jar ツールのリファレンスページと、Java チュートリアルの「Trail: Jar Files」を参照してください。
このオプションを使用すると、指定した JAR ファイルがすべてのユーザクラスのソースになり、ユーザクラスパスのほかの設定は無視されます。
- -javaagent:jarpath[=options]
- Java プログラミング言語エージェントをロードします。java.lang.instrument を参照してください。
- -verbose
- -verbose:class
- クラスがロードされるたびにクラスに関する情報を表示します。
- -verbose:gc
- ガベージコレクションイベントが発生するたびに報告します。
- -verbose:jni
- ネイティブメソッドの使用およびその他の Java Native Interface (JNI) アクティビティに関する情報を報告します。
- -version
- バージョン情報を表示して終了します。
- -showversion
- バージョン情報を表示して続行します。
- -?
- -help
- 使用法を表示して終了します。
- -X
- 非標準オプションに関する情報を表示して終了します。
- -Xint
- インタプリタ専用モードで動作します。ネイティブコードへのコンパイルは無効になり、すべてのバイトコードがインタプリタによって実行されます。Java HotSpot Client VM 対応のコンパイラが提供するパフォーマンス上の利点は、このモードでは実現されません。
- -Xbatch
- バックグラウンドコンパイルを無効にします。通常、VM では、バックグラウンドコンパイルが終了するまで、メソッドをバックグラウンドタスクとしてコンパイルし、インタプリタモードでメソッドを実行します。-Xbatch フラグを指定すると、バックグラウンドコンパイルが無効になり、すべてのメソッドのコンパイルが完了するまでフォアグラウンドタスクとして処理されます。
- -Xdebug
- JVMDI のサポートを有効にして開始します。JVMDI は推奨されていません。また、J2SE 5.0 でのデバッグには使用されません。したがって、J2SE 5.0 でのデバッグには、このオプションは必要ありません。
- -Xbootclasspath:bootclasspath
- ブートクラスファイルを検索するディレクトリ、JAR アーカイブ、および ZIP アーカイブをセミコロンで区切ったリストで指定します。指定したパスに存在するブートクラスファイルが、Java 2 SDK に含まれるブートクラスファイルの代わりに使用されます。注: rt.jar 内のクラスをオーバーライドする目的でこのオプションを使用するアプリケーションは、システムに配置しないでください。Java 2 Runtime Environment バイナリコードライセンス違反になります。
- -Xbootclasspath/a:path
- ディレクトリ、JAR アーカイブ、および ZIP アーカイブのパスをセミコロンで区切って指定します。パスはデフォルトのブートストラップクラスパスの後ろに追加されます。
- -Xbootclasspath/p:path
- ディレクトリ、JAR アーカイブ、および ZIP アーカイブのパスをセミコロンで区切って指定します。パスはデフォルトのブートストラップクラスパスの前に追加されます。注: rt.jar 内のクラスをオーバーライドする目的でこのオプションを使用するアプリケーションは、システムに配置しないでください。Java 2 Runtime Environment バイナリコードライセンス違反になります。
- -Xcheck:jni
- Java Native Interface (JNI) 機能に対して追加チェックを行います。具体的には、Java 仮想マシンは JNI 要求を処理する前に、JNI 関数に渡されるパラメータと、実行環境のデータを検証します。無効なデータが見つかった場合は、ネイティブコードに問題があることを示しているため、Java 仮想マシンは致命的エラーを発生して終了します。このオプションを使用すると、パフォーマンス低下が予想されます。
- -Xfuture
- クラスとファイルの形式を厳密にチェックします。下位互換性を保つため、Java 2 SDK の仮想マシンが実行するデフォルトの形式チェックは、JDK ソフトウェアのバージョン 1.1.x が実行するチェックと同程度の厳密さになっています。-Xfuture フラグを指定すると、クラスファイル形式の仕様への準拠を強化するためのより厳密なチェックが有効になります。Java アプリケーション起動ツールの将来のリリースでは、より厳密なチェックがデフォルトになるため、新しいコードを開発するときにはこのフラグを使用することをお勧めします。
- -Xnoclassgc
- クラスのガベージコレクションを無効にします。
- -Xincgc
- インクリメンタルガベージコレクタを有効にします。インクリメンタルガベージコレクタは、デフォルトでは無効になっています。有効にすると、プログラムの実行中にガベージコレクションによる一時停止が発生しなくなります。インクリメンタルガベージコレクタは、プログラムと同時に実行することがあり、この場合、プログラムの利用できるプロセッサ能力が低下します。
- -Xloggc:file
- -verbose:gc と同様にガベージコレクションイベントが発生するたびに報告しますが、そのデータを file に記録します。-verbose:gc を指定したときに報告される情報のほかに、報告される各イベントの先頭に、最初のガベージコレクションイベントからの経過時間 (秒単位) が付け加えられます。
ネットワークの応答時間によって JVM の実行速度が低下するのを避けるため、このファイルの格納先は、常にローカルファイルシステムにしてください。ファイルシステムが満杯になると、ファイルは切り捨てられ、そのファイルにデータが引き続き記録されます。このオプションと -verbose:gc の両方がコマンド行に指定されている場合は、このオプションが優先されます。
Copyright © 2002-2004 Sun Microsystems, Inc.All Rights Reserved. |
Java ソフトウェア |