在rmic编译中找不到类错误

时间:2012-04-07 13:13:20

标签: java rmi

我使用rmi类,我有一个问题。我的界面名称为server,我的实现类名称为serverImpl。当我在命令行中输入rmic -v1.2 -classpath .. serverImpl时(在编译接口和类之后),它会显示以下错误:

error: Class serverImpl not found.

我检查了指定目录中是否存在serverImpl

3 个答案:

答案 0 :(得分:6)

  1. 将您的服务器类和已实现的类放在一个文件夹中,将其命名为x

  2. 在每个班级package x;

  3. 之上添加此套餐
  4. 打开cmd并从包含javac x/MyServer.java文件夹的目录中写入javac x/MyImpl.javax

  5. 从包含rmic x.MyServer文件夹的目录中写下x

  6. 你现在应该有一个MyServer_stub.class,你可以度过愉快的一天:)

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

答案 1 :(得分:0)

serverImpl不必存在于指定目录中。您尚未指定目录,您已指定了CLASSPATH,并且必须在相应的包结构中存在serverImpl,您必须在命令行中正确命名。因此,如果serverImpl位于包x.y中,则必须指定包含x / y目录的CLASSPATH,并在命令行上指定x.y.serverImpl。正如您使用'java'命令运行时一样。

但是大约八年你根本不需要rmic - 请参阅UnicastRemoteObject的Javadoc课程。

答案 2 :(得分:-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
祝你好运! 卡兰