jre - Javaランタイムインタプリタ

jre は Java バイトコードを解釈 (実行) します。

形式

jre [ options ] classname <args>

機能説明

jreコマンドは、Javaクラスファイルを実行します。classname 引数は実行されるクラスの名前です。クラスに渡す引き数 argsは classname の後に指定しなければなりません。

クラスのサーチパスを指定する場合、Solaris 版の jreCLASSPATH 環境変数または -classpath, -cpを使用して指定することができます。 Windows版の jreCLASSPATH 環境変数を無視します。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