0

我使用 rmi 类,但我有一个问题。我的接口名称是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.java和。javac x/MyImpl.javax

  4. rmic x.MyServer从包含该文件夹的目录写入x

  5. 你现在应该有一个MyServer_stub.class,你可以有一个美好的一天:)

PS:包名与 RMI 或类中使用的任何对象不同,这一点很重要。否则你会发生物体碰撞。

于 2013-05-14T12:03:14.987 回答
0

serverImpl不必“存在于指定目录中”。你没有指定一个目录,你已经指定了一个 CLASSPATH,并且serverImpl必须存在于其中,在适当的包结构下,你还必须在命令行中正确命名。因此,如果serverImpl在 packagex.y中,则必须指定包含 x/y 目录的 CLASSPATH,并x.y.serverImpl在命令行中指定。与使用“java”命令运行时完全一样。

rmic但是大约八年来您根本不需要- 请参阅 Javadoc 类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 回答