【问题标题】:RMI - stub creation with rmicRMI - 使用 rmic 创建存根
【发布时间】:2011-03-22 16:18:28
【问题描述】:

我一直坚持为我的简单 RMI 实现创建存根。使用命令行,我位于存储类文件的目录中。

对我来说是:C:\Users\John\Documents\NetBeansProjects\testServer\build\classes\RMI

这里的 RMI 是我的文件所在的包。现在,当我在这个文件夹中时,我尝试使用 rmic -v1.2 -keep CountingOnServer 创建存根,但是命令行写给我,找不到该类 CountingOnServer。不管我在做什么,还是写出这么不可思议的错误……你知道怎么解决吗?

谢谢

【问题讨论】:

  • 自 java 1.4 起,不再需要创建 skel 类,自 1.5 以来的存根也是如此。你确定你需要 rmic 吗?
  • 我使用的是 JDK 1.6.0_18,所以真的不需要存根吗?
  • @Alf Skeletons 在 1.2 中变得不必要了。

标签: java rmi


【解决方案1】:

作为猜测,问题是CountingOnServer 在某个包中,所以你应该使用像RMI.CountingOnServer 这样的全名。不要忘记从类路径根目录运行 rmic,在您的情况下它似乎是 build\classes 目录。

【讨论】:

  • 如果我从 build/classes 作为 RMI.CountingOnServer 运行它,我也会遇到同样的错误 - 找不到类 RMI.CountingOnServer。
  • CountingOnServer的包是什么?
  • 已解决 - 我必须删除包,然后正常生成存根。
【解决方案2】:

如果您的 RMI 实现在包中运行 rmic 在您的类文件的根目录, 例如,

|-- build
|   |-- classes
|   |   `-- com
|   |       |-- client
|   |       |   `-- TestRMI.class
|   |       |-- rmi
|   |       |   |-- Hello.class
|   |       |   |-- HelloInterface.class
|   |       |   `-- Hello_Stub.class
|   |       `-- RMTServer
|   |           `-- RmiServer.class

我的类在 build/classes/com/rmi 目录中,因此,要创建存根,我可以在根目录下运行 rmic,

../build/classes/rmic com.rmi.Hello

【讨论】:

    猜你喜欢
    • 2011-05-15
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 2010-11-07
    • 2015-05-30
    • 1970-01-01
    相关资源
    最近更新 更多