rmic
rmicコンパイラは、Java Remote Method Protocol (JRMP)を使用したスタブおよびスケルトン・クラス・ファイルを生成する場合に使用します。
形式
rmic [ options ] package-qualified-class-names- 
                           options
- 
                        これは、 rmicコンパイラのコマンド行オプションです。「rmicコンパイラのオプション」を参照してください。
- 
                           package-qualified-class-names
- 
                        パッケージを含むクラス名(例: java.awt.Color)です。
説明
注意:
Java Remote Method Protocol (JRMP)のスタブおよびスケルトンの静的な生成のサポートは、非推奨になりました。その代わりに、動的に生成されたJRMPスタブを使用することをお薦めします。これにより、このツールをJRMPベースのアプリケーションで使用する必要がなくなります。
rmicコンパイラは、JRMPを使用したスタブおよびスケルトン・クラス・ファイルを生成します。
                  
注意:
 rmicコンパイラが更新されて、-idlおよび-iiopオプションが削除されており、IDLまたはIIOPスタブとTieクラスは生成できなくなりました。
                     
リモート・オブジェクトの実装クラスであるJRMPクラス・ファイルは、Javaプログラミング言語のクラスをコンパイルしたときに生成されます。リモート実装クラスは、java.rmi.Remoteインタフェースを実装するクラスです。rmicコマンドでのクラス名は、そのクラスがjavacコマンドで正常にコンパイルされていて、かつパッケージ名が完全修飾されている必要があります。たとえば、ここで示すように、クラス・ファイル名HelloImplでrmicコマンドを実行すると、クラスのパッケージ名が付いたhelloサブディレクトリにHelloImpl_Stub.classファイルが作成されます。 
                  
rmic hello.HelloImpl
リモート・オブジェクト用のスケルトンは、リモート・オブジェクト実装の呼出しをディスパッチするメソッドを含むJRMPプロトコル・サーバー側のエンティティです。
スタブは、リモート・オブジェクト用のクライアント側プロキシで、リモート・オブジェクトでのメソッド呼出しを、実際のリモート・オブジェクト実装が存在するサーバーと通信する役割を持っています。したがって、クライアントによるリモート・オブジェクトへの参照は、実際はローカル・スタブへの参照となります。
デフォルトでは、rmicコマンドは、-v1.2オプションが指定されている場合と同様に、1.2 JRMPスタブ・プロトコル・バージョンのみを使用するスタブ・クラスを生成します。「rmicコンパイラのオプション」を参照してください。
                  
スタブはリモート・インタフェースのみを実装し、リモート・オブジェクトが実装するローカル・インタフェースは実装しません。JRMPスタブはリモート・オブジェクトと同じリモート・インタフェースを実装するため、クライアントは、キャストや型チェックにJavaプログラミング言語に組み込まれた演算子を使用できます。
rmicコンパイラのオプション
- 
                           -bootclasspath path
- 
                        ブートストラップ・クラス・ファイルの場所をオーバーライドします。 
- 
                           -classpath path
- 
                        rmicコマンドがクラスを探すために使用するパスを指定します。このオプションを設定すると、デフォルトやCLASSPATH環境変数がオーバーライドされます。オペレーティング・システムに応じて、ディレクトリはコロンまたはセミコロンで区切られます。pathの一般的な形式を次に示します。- 
                              Oracle Solaris、LinuxおよびmacOS: .:your_path。例:.:/usr/local/java/classes
- 
                              Windows: .;your_path。例:.;/usr/local/java/classes
 
- 
                              
- 
                           -d directory
- 
                        生成されたクラス階層の出力先ディレクトリのルートを指定します。このオプションを使えば、スタブ、スケルトン、およびTieファイルを格納するディレクトリを指定できます。 - 
                              Oracle Solaris、LinuxおよびmacOS: たとえば、次のコマンドは、 MyClassから導出されたスタブおよびスケルトン・クラスを/java/classes/exampleclassディレクトリに配置します。rmic -d /java/classes exampleclass.MyClass
- 
                              Windows: たとえば、次のコマンドは、 MyClassから導出されたスタブおよびスケルトン・クラスをC:\java\classes\exampleclassディレクトリに配置します。rmic -d C:\java\classes exampleclass.MyClass
 -dオプションが指定されていない場合、デフォルトの動作は、-dが指定された場合と同様です。ターゲット・クラスのパッケージ階層が現在のディレクトリに作成され、スタブ、Tieおよびスケルトン・ファイルがそのディレクトリに配置されます。
- 
                              
- 
                           -g
- 
                        ローカル変数を含むすべてのデバッグ情報を生成できます。デフォルトでは、行番号情報だけが生成されます。 
- 
                           -Jargument
- 
                        -Jオプションを任意のJavaコマンドと組み合せて使用すると、後に続くargument(-Jと引数の間に空白を入れない)がJavaインタプリタに渡されます。
- 
                           -keepまたは-keepgenerated
- 
                        スタブ、スケルトンまたはTieクラス用に生成された .javaソース・ファイルを保持し、.classファイルと同じディレクトリに書き込みます。
- 
                           -nowarn
- 
                        警告をオフにします。 -nowarnオプションを使用すると、コンパイラは警告を出力しません。
- 
                           -nowrite
- 
                        コンパイル済のクラスをファイル・システムに書き込みません。 
- 
                           -vcompat(非推奨)
- 
                        1.1と1.2の両方のJRMPスタブ・プロトコル・バージョンと互換性のあるスタブおよびスケルトン・クラスを生成します。5.0よりも前のリリースでは、このオプションがデフォルトでした。生成されたスタブ・クラスは、JDK 1.1仮想マシンにロードされると1.1スタブ・プロトコル・バージョンを使用し、JDK 1.2以降の仮想マシンにロードされると1.2スタブ・プロトコル・バージョンを使用します。生成されたスケルトン・クラスでは、1.1と1.2の両方のスタブ・プロトコル・バージョンをサポートします。生成されたクラスは両方の操作モードをサポートするために、サイズが大きくなります。 注意: このオプションは非推奨になりました。「説明」を参照してください。 
- 
                           -verbose
- 
                        コンパイラやリンカーが、コンパイルされているクラスやロードされているクラス・ファイルについてのメッセージを表示するようにします。 
- 
                           -v1.1(非推奨)
- 
                        1.1 JRMPスタブ・プロトコル・バージョンのみのスタブおよびスケルトン・クラスを生成します。 -v1.1オプションが役立つのは、JDK 1.1からrmicコマンドで生成され、アップグレードできない(さらに動的なクラス・ローディングを使用していない)既存の静的にデプロイされたスタブ・クラスと直列化互換性のあるスタブ・クラスを生成する場合のみです。注意: このオプションは非推奨になりました。「説明」を参照してください。 
- 
                           -v1.2(非推奨)
- 
                        (デフォルト) 1.2 JRMPスタブ・プロトコル・バージョンのみのスタブ・クラスを生成します。スケルトン・クラスは1.2スタブ・プロトコル・バージョンで使用されないため、スケルトン・クラスは生成されません。生成されたスタブ・クラスは、JDK 1.1仮想マシンにロードされても動作しません。 注意: このオプションは非推奨になりました。「説明」を参照してください。