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>.:/usr/local/java/classes- -d directory
- クラス階層のルートディレクトリを指定します。このオプションを使えば、スタブとスケルトンファイルを格納するディレクトリを指定できます。たとえば、次のようにして使います。
MyClass から取得したスタブとスケルトンクラスを /java/classes/foo ディレクトリに置きます。-d オプションを使用しない場合、ターゲットクラスのパッケージ階層は無視され、スタブとスケルトンファイルは現在のディレクトリに置かれます。% rmic -d /java/classes foo.MyClass
- -depend
- コンパイラに、他のクラスが参照するクラスを再コンパイラするかどうかを判断させます。通常、ソースコードが参照するクラスが欠落したり、古くなったものだけを再コンパイルするだけです。
- -g
- デバッガ用のテーブルを生成します。デバッガ用のテーブルは行番号や局所変数に関する情報を含みます。この情報は Java デバッガツールが使用します。 デフォルトでは、行番号だけが生成されます。
- -J
- 後ろに続くオプションを java インタプリタに引き渡します。-D オプションと組み合わせて使います (-J と -D の間にスペースは入れない)。
- -keepgenerated
- スタブやスケルトンのための .java ソースファイルを .class ファイルと同じディレクトリに残します。-d オプションが指定されていれば、その設定に従います。
- -nowarn
- 警告をオフにします。このオプションを指定すると、コンパイラは警告を表示しません。
- -show
- rmic コンパイラ用の GUI (グラフィカルユーザインタフェース) を表示します。パッケージが指定された 1 つ以上のクラス名 (スペースで分ける) を入力し、Enter キーまたは [Show] ボタンを押し、スタブやスケルトンを作成します。
- -vcompat
- (デフォルト) JDK 1.1 と 1.2 の両方のスタブプロトコルバージョンと互換性のあるスタブとスケルトンを作成します。
- -verbose
- コンパイラやリンカが、コンパイルされているクラスやロードされているクラスファイルについてのメッセージを表示するようにします。
- -v1.1
- JDK 1.1 のスタブプロトコルバージョンのスタブとスケルトンを作成します。
- -v1.2
- JDK 1.2 のスタブプロトコルバージョンだけのスタブを作成します。
- CLASSPATH
- ユーザ定義クラスへのパスをシステムに指定します。ディレクトリはコロンで分割します。次に例を示します。
.:/usr/local/java/classes
javac