0

私はrmiアプリケーションを書いています。すべてのクラスを 1 つのディレクトリに配置すると、すべてが正常に機能します。ただし、サーバー部分とクライアント部分を分割しようとすると、 java.lang.ClassNotFoundException.myclasses が発生します。レジストリが CLASSPATH でそのクラスを見つけることができないようです。この問題を解決するにはどうすればよいですか?

4

2 に答える 2

0

クライアントとサーバーの両方への引数でクラスパス ディレクトリを指定していますか?

チュートリアルから:

サーバ

Solaris オペレーティング システムの場合:

java -classpath classDir -Djava.rmi.server.codebase=file:classDir/ example.hello.Server &

Windows プラットフォームの場合:

start java -classpath classDir -Djava.rmi.server.codebase=file:classDir/ example.hello.Server

サーバーの準備ができたら、クライアントを次のように実行できます。

java -classpath classDir example.hello.Client ここで、classDir はクラス ファイル ツリーのルート ディレクトリです。

http://java.sun.com/javase/6/docs/technotes/guides/rmi/hello/hello-world.html#5

于 2009-09-27T18:08:20.423 に答える
-1

レジストリは、クライアント インターフェイスをサーバー実装クラスとリンクするために存在します。クライアントでは、クラスパスにインターフェイス クラス定義が必要です。

また、クライアントは実装クラスをまったく参照しないでください。すべてがインターフェイス/スタブ クラスにある必要があります。

これで質問の答えが得られない場合は、より具体的にして、少なくともいくつかのコードを提供する必要があります。

于 2009-09-27T17:54:29.747 に答える