java [ threads flag ] [ options ] class [ argument ... ] java [ threads flag ] [ options ] -jar file.jar [ argument ... ] oldjava [ threads flag ] [ options ] class [ argument ... ]
options
- コマンド行オプション
class
- 呼び出されるクラスの名前
file.jar
- 呼び出されるファイルの名前。必ず
-jar
と同時に使用されるargument
- main 関数に渡される引数
java ツールは、Java アプリケーションを起動します。java ツールは、Java Runtime Environment を起動したあと、指定されたクラスをロードし、このクラスの main メソッドを呼び出して Java アプリケーションを起動します。main メソッドは次のシグニチャーを持っていなければなりません。public static void main(String[])デフォルトでは、オプションではない最初の引数が、呼び出すクラスの名前になります。この名前には、完全指定のクラス名を使用する必要があります。-jar オプションを指定した場合、オプションではない最初の引数は、アプリケーションのクラスファイルとリソースファイルを含む JAR アーカイブの名前になります。この場合、Main-Class マニフェストヘッダで指定されたクラスがスタートアップクラスになります。Java Runtime は、ブートストラップクラスパス、インストール型拡張機能、およびユーザクラスパスの 3 つの場所から、スタートアップクラスとその他の使用するクラスを探します。
クラス名または JAR ファイル名のあとにあるオプションではない引数は、main 関数に渡されます。
Solaris システムの場合、java 起動コマンドツールには java と oldjava の 2 つがあります。java は 1.2 のすべての機能を実装しています。oldjava は機能を制限した起動コマンドツールで、1.2 の一部の機能と互換性のないプログラミング手法をサポートしています。java と oldjava の違いは、次のとおりです。oldjava を使った次のコマンド
- oldjava 起動コマンドは、拡張機能機構をサポートしていません。ただし、クラスとリソースのアーカイブとして拡張機能パッケージを使用することは可能です。
- oldjava 起動コマンドはすべてのクラスに対してブートストラップクラスローダを使用しますが、java 起動コマンドはブートストラップクラスに対してだけブートストラップクラスローダを使用します。
- java 起動コマンドの -classpath オプションと -cp オプションは、ユーザクラスの検索パスを指定するオプションなので、ブートストラップクラスの位置を指定するために使用することはできません。oldjava 起動コマンドの -classpath オプションと -cp オプションは、ブートストラップクラスを含む「すべてのクラス」の位置を指定するためのオプションです。
CLASSPATH 環境変数の扱いについては、java と oldjava の間に「違いはありません」。-classpath または -cp によって上書きされる場合は別ですが、CLASSPATH は常にユーザクラスの位置を示しており、ブートストラップクラスの位置の指定は含まれていません。
- oldjava 起動コマンドは、1.2 のすべてのセキュリティ機能をサポートしています。ただし、oldjava を使うと、クラスパスからロードされたクラスに保護ドメインがないため、java 起動コマンドではブートストラップクラスにしか許可されないアクセス権が、すべて許可されてしまいます。
は、java を使った次のコマンドoldjava -classpath <path> ...と等価であり、どちらの場合も <path> にはファイル rt.jar が含まれます。rt.jar および JDK ソフトウェア内での rt.jar の位置については、「JDK のファイル構造」を参照してください。java -Xbootclasspath:<path> -Djava.ext.dirs= ...
起動コマンドのデフォルトの動作では、Just in Time コンパイラ (JIT) を使ってバイトコードを実行します。デフォルトでは、コンパイラは jre/lib/sparc/libsunwjit.so にあります。JIT は、クラスがロードされると、クラスのバイトコードをネイティブマシンコードに変換します。JIT を使うと、各クラスのロードあとに若干の遅延が発生しますが、プログラム全体のパフォーマンスは向上します。場合によっては、実行時間が 10 分の 1 に短縮されることもあります。JIT が無効になっている場合は、バイトコードがインタプリタによって直接実行されます。JIT を無効にするには、次の 2 つの方法があります。
また、JAVA_COMPILER または java.compiler を使って代替 JIT の使用を指定できます。
- setenv コマンドを使って環境変数 JAVA_COMPILER に NONE を設定する
% setenv JAVA_COMPILER NONE
- -D コマンド行オプションを使って java.compiler に NONE を設定する
コマンド行オプションは、JAVA_COMPILER の環境変数の設定をオーバーライドします。% java -Djava.compiler=NONE myappまたは% setenv JAVA_COMPILER foo「foo」に文字 lib が付加され、.so ファイル名拡張子が追加されるため、Virtual Machine は、libfoo.so という名前の JIT コンパイラを検索します。代替コンパイラの検索は、jre/lib/sparc ディレクトリおよび LD_LIBRARY_PATH 環境変数で指定されるパスで行われます。代替コンパイラが見つからない場合は、インタプリタが使われます。% java -Djava.compiler=foo myapp
起動コマンドには、現在の実行環境および将来のリリースでサポートされる標準オプションがあります。このほかの非標準オプションは、現在の Virtual Machine 実装に固有のオプションで、将来変更される可能性があります。非標準オプションは -X で始まります。
- -classpath classpath
- -cp classpath
- クラスファイルを探すディレクトリ、JAR アーカイブ、および ZIP アーカイブのリストを指定します。クラスパスの各エントリはコロン (:) で区切ります。-classpath または -cp を指定すると、これらのオプションの値によって CLASSPATH 環境変数の設定は上書きされます。
java または javaw で -classpath または -cp を使う場合、これらのオプションによって指定されるのはユーザクラスのクラスパスだけです。oldjava または oldjavaw で -classpath または -cp を使う場合、これらのオプションによって指定されるのは、ユーザクラスとブートストラップクラスの両方のクラスパスです。
-classpath と -cp を使用せず、CLASSPATH も設定されていない場合、ユーザクラスパスは現在のディレクトリ (
.
) になります。クラスパスの詳細は、「クラスパスの設定」を参照してください。
- -Dproperty=value
- システムプロパティの値を設定します。
- -jar
- JAR アーカイブの中にカプセル化されたプログラムを実行します。最初の引数は、スタートアップクラスの名前ではなく、JAR アーカイブファイルの名前になります。スタートアップクラスは、Main-Class マニフェストヘッダによって指定されます。指定された JAR ファイルは、すべてのユーザクラスのソースになり、ほかのユーザクラスパス設定は無視されます。
oldjava ツールと oldjavaw ツールは、-jar オプションをサポートしていません。
- -verbose
- -verbose:class
- クラスがロードされるたびにクラスに関する情報を表示します。
- -verbose:gc
- ガベージコレクションイベントが発生するたびに報告します。
- -verbose:jni
- ネイティブメソッドおよびその他の Java Native Interface (JNI) の使用に関する情報を報告します。
- -version
- バージョン情報を表示して終了します。
- -?
- -help
- 使用法を表示して終了します。
- -X
- 非標準オプションに関する情報を表示して終了します。
- -Xbootclasspath:bootclasspath
- ブートクラスファイルを探すディレクトリ、JAR アーカイブ、および ZIP アーカイブをコロンで区切ったリストを指定します。指定されたパスに存在するブートクラスファイルは、JDK 1.2 ソフトウェアに含まれるブートクラスファイルの代わりに使われます。
- -Xdebug
- デバッガが有効な状態で起動します。Java インタプリタは、jdb が使用するパスワードを表示します。詳細と例については、「jdb の説明」 を参照してください。
- -Xnoclassgc
- クラスのガベージコレクションを無効にします。
- -Xmsn
- メモリ割り当てプールの初期サイズを指定します。指定する値は、1000 より大きくなければなりません。値を 1000 倍にするには、文字 k を追加します。値を 100 万倍にするには、文字 m を追加します。既定値は 1m です。
- -Xmxn
- メモリ割り当てプールの最大サイズを指定します。指定する値は、1000 より大きくなければなりません。値を 1000 倍にするには、文字 k を追加します。値を 100 万倍にするには、文字 m を追加します。既定値は 16m です。
- -Xrunhprof[:help][:<suboption>=<value>,...]
- CPU、ヒープ、またはモニターのプロファイリングを有効にします。通常、このオプションのあとには、コンマで区切られた「<suboption>=<value>」のペアが続きます。サブオプションおよびそれらのデフォルト値の一覧を取得するには、コマンド java -Xrunhprof:help を実行します。
- -Xrs
- オペレーティングシステムシグナルの使用を減らします。
- -Xcheck:jni
- Java Native Interface (JNI) 関数に対して追加チェックを行います。