jre - Javaランタイムインタプリタ
jre は Java バイトコードを解釈 (実行) します。
形式
jre [ options ] classname <args>
機能説明
jreコマンドは、Javaクラスファイルを実行します。classname 引数は実行されるクラスの名前です。クラスに渡す引き数
argsは classname の後に指定しなければなりません。
クラスのサーチパスを指定する場合、Solaris 版の jre は CLASSPATH
環境変数または -classpath, -cpを使用して指定することができます。
Windows版の jre は CLASSPATH 環境変数を無視します。Solaris版またはWindows版の
jre を使用する場合、クラスパスを指定する際には -cp オプションを使用することを推奨します。
JITの利用
このバージョンの JDKは、ジャストインタイム(JIT)コンパイラをサポートしています。クラスがロードされた時に
JIT はバイトコードをネイティブのマシンコードに翻訳します。JITを使用すると、それぞれのクラスをロードする時間がかかりますが、プログラムの実行時間は飛躍的にアップします。
このバージョンの jre は、JITをデフォルトでは使用しません。もし、JITを利用したい場合、JAVA_COMPILER
環境変数を設定するか jre の -D オプションを利用して下さい。
Solaris版は、"sunwjit"と呼ばれる JITが含まれています。Windows版は、"sunwjit"と"symcjit"と呼ばれる
JIT が含まれています。
JITを利用したい場合:
% setenv JAVA_COMPILER sunwjit
% jre MyClass
JITの利用を中止したい場合:
% unsetenv JAVA_COMPILER
コマンドラインで使用の有無を決定したい場合:
% jre -Djava.compiler=sunwjit MyClass
このバージョン(JDK 1.2β)の注意
クラスや JARファイルおよびポリシーを指定する場合、-new オプションを指定しなくてはならない。でも、将来このオプションはなくなるでしょう。なんでだろう?あまり必然性が感じられない。新しい機能だから?
ま、いいか.....
JAR ファイル指定の場合
% jre -new -jar foo.jar
クラス指定の場合
% jre -new MyClass
オプション
Java ランタイムインタプリタは標準オプションと非標準のオプションが用意されています。非標準のオプションは将来の
java VM で正式なものになるかもしれない。 非標準のオプションは -Xが付いています。
標準オプション
- -classpath path
- jre がクラスを探すために使用するパスを指定します。デフォルト、またはCLASSPATH 環境変数の設定をオーバーライドします。ディレクトリはコロン(UNIX版)やセミコロン(Windows版)で分割します。path
の一般形式は、以下のようになります:
UNIX版
.:<your_path>
Windows版
.;<your_path>
例えば以下の様に指定します:
.:/home/xyz/classes:/usr/local/java/classes
- -help
- ヘルプの表示。
- -v, -verbose, -verbose:class
- クラスファイルがロードされるたびに jre が標準出力にメッセージを表示します。
- -verbose:gc
- メモリを解放するときに、ガベージコレクタにメッセージを表示させます。
- -verbose:jni
- ネイティブメソッドが呼ばれたり実行された時にメッセージを表示します。
- -DpropertyName=newValue
- プロパティーの再定義。変更したいプロパティーの名前 propertyName に値 newValue
を指定する。例えば
% jre -Dawt.button.color=green ...
プロパティー awt.button.color の値を "green"に設定します。-D オプションは複数指定できます。
- -jar
- Note: このβバージョンの jre では -new オプションの指定が必要。
JARアーカイブにカプセルかされた Java プログラムを実行します。アーカイブには Main-Classヘッダーのある
manifest ファイルが含まれていなければなりません。 Main-Class ヘッダーに記述されたクラスが初めに実行されます。
例えば、プログラムのエントリーポイントが COM.MyCompany.MyPackage.MyClass.main()
ならば、manifest には以下の記述が含まれていなければなりません。
Main-Class: COM.MyCompany.MyPackage.MyClass
- -usepolicy[:policyfile]
- Note: このβバージョンの jre では -new オプションの指定が必要。
セキュリティーポリシーを使用する。ポリシーはファイル policyfile に記述されている。もし
policyfile が指定されなかった場合、JDKインストール時のデフォルトが使用される。
-usepolicyを指定しなかった場合、セキュリティーマネージャーはインストールされません。そして、プログラムはセキュリティーに関する制限無しで実行されます。
- -X
- 非標準なオプションを表示します。
非標準オプション
- -Xmxx
- x にメモリアロケーションプール(ガベージコレクトヒープ)の最大サイズを指定します。デフォルトは
16MB メモリ。x は 1000 バイト以上でなければなりません。
デフォルトでは、x はバイト単位です。x には、文字 "k" を追加することでキロバイトを、文字
"m" を追加することでメガバイトを指定することができます。
- -Xmsx
- x にアロケーションプール(ガベージコレクトヒープ)のスタートアップサイズを設定します。デフォルトは
1MB のメモリです。x は 1000 バイト以上でなければなりません。
デフォルトでは、x はバイト単位です。x には、文字 "k" を追加することでキロバイトを、文字
"m" を追加することでメガバイトを指定することができます。
- -Xnoasyncgc
- 非同期ガベージコレクションをオフにします。オプションが有効なとき、ガベージコレクションを明示的に呼び出すか、プログラムがメモリを使い果たしたときだけ、ガベージコレクションは起動します。通常ガベージコレクションは、非同期スレッドとして他のスレッドと並列して実行されます。
- -Xnoclassgc
- Java クラスのガベージコレクションをオフにします。デフォルトでは、ガベージコレクション中に使用されない
Java クラスのスペースを、Java インタプリタが再利用します。
- -Xssx
- Java スレッドはそれぞれ、Java コードと C コードの2つのスタックを持っています。-Xss
オプションは、スレッドの中で C コードによって使用されるスタックサイズの最大値を、x
に指定します。jre に渡されたプログラムの実行中に生成される、すべてのスレッドは
C スタックサイズとして x を持ちます。x のデフォルト単位はバイトです。xの値は
1000 バイト以上でなければなりません。
キロバイトには文字 "k" を追加し、メガバイトには文字 "m" を追加することにより、xの意味を変更することができます。デフォルトのスタックサイズは
128KB("-Xss128k")です。
- -Xossx
- Java スレッドはそれぞれ、Java コード用と C コード用の2つのスタックを持っています。-Xoss
オプションは、スレッドの中で Java コードによって使用されるスタックサイズの最大値を
x に指定します。jre に渡されたプログラムの実行中に生成されるすべてのスレッドは、Java
スタックサイズとして x を持ちます。x のデフォルト単位はバイトです。xの値は
1000 バイト以上でなければなりません。
キロバイトには文字 "k" を追加し、メガバイトには文字 "m" を追加することにより、xの意味を変更することができます。デフォルトのスタックサイズは
400KB ("-Xss400k")です。
- -Xverify
- クラスファイルのバイトコードの検証を行います。
- -Xverifyremote
- クラスローダーによってシステムにロードされるすべてのコードの検証を行います。このオプションはデフォルトでセットされています。
- -Xnoverify
- 検証をオフにします。
環境変数
- CLASSPATH
- ユーザ定義クラスへのパスをシステムに指定します。ディレクトリはコロン(UNIX版)やセミコロン(Windows版)で分割します。たとえば、
UNIXの場合
.:/home/me/classes:/usr/local/java/classes.jar
Windowsの場合
.;C:\home\me\classes;C:\java\classes.jar
|