rmic は、リモートオブジェクトのためのスタブとスケルトンを生成します。
rmic [ options ] package-qualified-class-name(s)
rmic コンパイラは、リモートオブジェクトの実装を含む Java クラスの名前から、リモートオブジェクトのためのスタブとスケルトンクラスファイルを生成します(リモートオブジェクトはインタフェースjava.rmi.Remote
を実装しているオブジェクトです)。rmic コマンドで名付けられたこのようなクラス名は、javac コマンドでコンパイルが成功したクラス、および完全な適格性をもつパッケージです。たとえば、クラスファイル名HelloImpl
で rmic を実行するには、次のようにします。rmic hello.HelloImplこれにより、
HelloImpl_Skel.class
ファイルとHelloImpl_Stub.class
ファイルが作成されます。リモートオブジェクトのスケルトンはサーバ側のエンティティで、実際のリモートオブジェクト実装を呼び出すメソッドを含みます。
スタブとは、リモートオブジェクトの代理です。それは、リモートオブジェクトのメソッド呼び出しを、本物のリモートオブジェクトが常駐するサーバに転送する責任をもちます。したがって、クライアントのリモートオブジェクトへの参照は、実際は局所スタブへの参照となります。
スタブは、リモートインタフェースだけを実装し、リモートオブジェクトが実装するいかなる局所インタフェースも実装していません。スタブはリモートオブジェクト自身が実装するリモートインタフェースとまったく同じものを実装しているので、クライアントは、キャストや型チェックに Java 言語に組み込まれた演算子を使用することができます。
- -classpath path
- rmicがクラスを探すためのパスを指定します。このオプションは、デフォルトや CLASSPATH 環境変数設定を上書きします。ディレクトリはセミコロンで分割します。したがって、pathの一般形式は次のようになります。
たとえば、パスの指定は次のとおりです。.;<your_path>.;C:\usr\local\java\classes
- -d directory
- クラス階層のルートディレクトリを指定します。省略した場合のデフォルト値は現在のディレクトリです。
- -depend
- コンパイラに、他のクラスが参照するクラスを再コンパイラするかどうか考えさせます。通常、ソースコードが参照するクラスが欠落したり、古くなったものだけを再コンパイルするだけです。
- -g
- デバッガ用のテーブルを生成します。デバッガ用のテーブルは行番号や局所変数に関する情報を含みます。この情報は Java デバッガツールが使用します。デフォルトでは、最適化 (-Oオプション) がオフの場合、行番号だけが生成されます。
- -keepgenerated
- スタブやスケルトンのための
.java
ソースファイルを.class
ファイルと同じディレクトリに残します。-d オプションが指定されていれば、その設定にしたがいます。
- -nowarn
- 警告をオフにします。このオプションにより、コンパイラはいかなる警告も表示しません。
- -O
- static、final および private のメソッドをインライン化することによって、コンパイルされるコードを最適化します。クラスのサイズが大きすぎないように注意してください。
- -show
- rmic コンパイラ用の GUI (グラフィカルユーザインタフェース) を表示します。パッケージの資格をもつ 1 つ以上のクラス名 (スペースで分ける) を入力し、Enter キーまたは Show ボタンを押し、スタブやスケルトンを作成します。
- -verbose
- コンパイラやリンカに、コンパイルされているクラスやロードされているクラスファイルについて、メッセージを表示させます。
- CLASSPATH
- ユーザ定義クラスへのパスをシステムに指定します。ディレクトリは、UNIX や Macintosh ではコロンで、Win95 はセミコロンで分割します。たとえば、次のとおりです。
.;C:\usr\local\java\classes
The javac command.