0

rmiクラスを使用していますが、問題が1つあります。私のインターフェースの名前はserverであり、実装クラスの名前はserverImplです。コマンドラインに入力rmic -v1.2 -classpath .. serverImplすると(インターフェイスとクラスをコンパイルした後)、次のエラーが表示されます。

error: Class serverImpl not found.

serverImpl指定されたディレクトリに存在することを確認しました。

4

3 に答える 3

6
  1. サーバークラスと実装されたクラスをフォルダーに入れ、名前を付けますx

  2. このパッケージを各クラスの上に追加しますpackage x;

  3. cmd を開き、フォルダjavac x/MyServer.javajavac x/MyImpl.java含むディレクトリから書き込みます。x

  4. フォルダrmic x.MyServerを含むディレクトリから書き込みます。x

  5. あなたは今持っているはずです、MyServer_stub.classそしてあなたは良い一日を過ごすことができます:)

PS: パッケージ名は、RMI やクラス内で使用されるオブジェクトとは異なることが重要です。そうしないと、オブジェクトの衝突が発生します。

于 2013-05-14T12:03:14.987 に答える
0

serverImpl「指定されたディレクトリに存在する」必要はありません。ディレクトリを指定しておらず、CLASSPATH を指定してserverImplおり、その中に適切なパッケージ構造の下に存在する必要があります。また、コマンド ラインで正しく名前を付ける必要があります。serverImplがパッケージに含まれている場合x.yは、x/y ディレクトリを含む CLASSPATH を指定x.y.serverImplし、コマンド ラインで指定する必要があります。「java」コマンドで実行する場合とまったく同じです。

rmicしかし、約 8 年間はまったく必要ありませんでした。クラス Javadoc for を参照してくださいUnicastRemoteObject

于 2012-04-08T00:42:09.247 に答える
-2

スラッシュ (/) をドット (.) に変換してください。それは私のために働いた。

私は次の構造を持っています

rmitest/
rmitest/MyRemoteIf.java
rmitest/MyRemoteImpl.java

javac rmitest/*.java

rmic rmitest.MyRemoteImpl

出力は次のとおりです。

rmitest/MyRemoteIf.class

rmitest/MyRemoteImpl.class

rmitest/MyRemoteImpl_Stub.class

rmitest/MyRemoteImpl_Skel.class

幸運を!!カラン

于 2013-02-13T07:49:04.520 に答える