ここでは、カスタム RMI ソケットファクトリをインストールして使用するように修正した Hello World プログラムをコンパイルして実行する方法を説明します。
まず、ソースファイルを格納するディレクトリを作成し、ソースファイルをダウンロードします。このステップがまだ完了していない場合、次のステップに進む前に完了させてください。
このチュートリアルで使うソースコードは、次の形式から選択できます。
ここでは、ソースファイルを格納するディレクトリを、SOURCE_DIRECTORY とします。たとえば、「test」という名前のディレクトリにソースファイルをダウンロードした場合は、これ以降の説明の「SOURCE_DIRECTORY」を「test」に置き換えて実行してください。
- SOURCE_DIRECTORY ディレクトリを作成する
- ソースコードを SOURCE_DIRECTORY にダウンロードする
- SOURCE_DIRECTORY ディレクトリに移動する
- ダウンロードした TAR ファイルを解凍する
- 次の方法で、すべてのソースファイルをコンパイルする
javac -d . *.java
この例のすべてのファイルはパッケージ名
examples.rmisocfac
を持つので、このコマンドを実行した結果は、次のようになります。
examples
という名前のディレクトリが SOURCE_DIRECTORY に作成されるrmisocfac
という名前のディレクトリがexamples
に作成される- コンパイルされた .class ファイルはすべて、
rmisocfac
に格納されるソースファイルのコンパイルが終了したら、RMI コンパイラ rmic
を使って、リモートオブジェクト実装サーバHelloImpl
のスタブとスケルトンコードを生成します。
rmic
を呼び出すときは、実装クラスの完全指定されたパッケージ名を使う必要があります。この例では、examples.rmisocfac.HelloImpl
です。ここまでの手順を終えると、現在のディレクトリは SOURCE_DIRECTORY になるので、次のように入力してrmic
を起動します。
rmic -d . examples.rmisocfac.HelloImpl
このコマンドが終了すると、スタブとスケルトンは他の .class ファイルと同じディレクトリに生成されます。
Microsoft Windows プラットフォームでは、このディレクトリは
C:\SOURCE_DIRECTORY\examples\rmisocfac
です。SolarisTM のオペレーティング環境では、このディレクトリは
~/SOURCE_DIRECTORY/examples/rmisocfac
です。
rmic
の起動後は、スタブとスケルトンの .class ファイルHelloImpl_Stub.class
とHelloImpl_Skel.class
は~/SOURCE_DIRECTORY/examples/rmisocfac
に格納されます。
このチュートリアルでは、rmiregistry
、クライアント、およびサーバの各々を 3 つの独立したウィンドウ (シェル) で実行します。レジストリを起動し、次にサーバ、最後にクライアントを起動します。
- 各ウィンドウで、SOURCE_DIRECTORY に移動する (パッケージディレクトリ
examples/rmisocfac
が SOURCE_DIRECTORY のサブディレクトリである場合)
- 次に、JavaTM 2 プラットフォームのランタイムが実行ファイルの場所を確実に検索できるようにする。このためには、3 つのウィンドウすべてで、
CLASSPATH
に SOURCE_DIRECTORY を含めて設定する必要がある
rmiregistry
を起動するには、3 つのウィンドウの 1 つをレジストリウィンドウとして選択し、次のように入力する
rmiregistry
注:
rmiregistry
を開始する前に、レジストリを実行するシェルまたはウィンドウに CLASSPATH が設定されていないこと、あるいは設定されていても、クライアントにダウンロードするクラスへのパス (リモートオブジェクトの実装クラスのスタブを含む) が含まれていないことを確認してください。
rmiregistry
が、その開始時に CLASSPATH 内でスタブクラスを見つけると、サーバのjava.rmi.server.codebase
プロパティは無視されます。 その結果、クライアントは、そのリモートオブジェクトのスタブコードをダウンロードできません。RMI を使ったコードのダウンロードについては、チュートリアルの「RMI の使用による動的なコードのダウンロード」を参照してください。
- サーバを起動するには、サーバ用ウィンドウを選択して、次のように入力する
java -Djava.security.policy=/SOURCE_DIRECTORY/policy -Djava.rmi.server.codebase=file:/SOURCE_DIRECTORY/ examples.rmisocfac.HelloImpl
サーバが正常に起動すると、「HelloServer Bound in registry.」と表示されます。サーバの起動時にエラーが発生した場合は、rmiregistry の CLASSPATH または
java.rmi.server.codebase
プロパティの設定に問題がある可能性があります。
- クライアントを起動するには、3 つ目のウィンドウで次のように入力する
java -Djava.security.policy=/SOURCE_DIRECTORY/policy examples.rmisocfac.HelloClient
HelloClient
プログラムが正常に実行されると、ウィンドウに「Hello World!」というメッセージが表示されます。
Copyright © 1999 Sun Microsystems, Inc. All Rights Reserved. コメントの送付先: rmi-comments@java.sun.com |
![]() |