现在要用rmic生成stub
这是java的路径
F:\study\study.web\JavaSource\com\study\rmi
这是class的路径
F:\study\study.web\WebContent\WEB-INF\classes\com\study\rmi
文件名为
AbstractRMIServerImpl
 
我试过了,不过出现下面的问题:
F:\ctcb\ctcb.web\WebContent\WEB-INF\classes\com\helloasia\tiger\rmi>rmic Abstrac
tRMIServerImpl
error: Class AbstractRMIServerImpl not found.
1 error
而F:\ctcb\ctcb.web\WebContent\WEB-INF\classes\com\helloasia\tiger\rmi\AbstractRMIServerImpl.class是有的
请高手帮忙!

解决方案 »

  1.   

    rmic @build/OPTIONS_RMI.MF @build/CLASSES_RMI.MF在build目录中的OPTIONS_RMI.MF文件中写:
    -classpath .;源包
    -d .
    -g
    -iiop
    -verbose在build目录中的CLASSES_RMI.MF文件中写:
    要转换的类的全名,一个类写一行
      

  2.   

    Ryo_Hazuki(困了) 
    我按照你说的try了一下
    结果出错了:
    F:\ctcb\ctcb.web\WebContent\WEB-INF\classes\com\helloasia\tiger\rmi>rmic @build/
    OPTIONS_RMI.MF @build/CLASSES_RMI.MF
    [loaded .\AbstractRMIServerImpl.class in 16 ms]
    error: File .\AbstractRMIServerImpl.class does not contain type AbstractRMIServe
    rImpl as expected, but type com.helloasia.tiger.rmi.AbstractRMIServerImpl. Pleas
    e remove the file, or make sure it appears in the correct subdirectory of the cl
    ass path.
    error: Class AbstractRMIServerImpl not found.
    2 errors
    [done in 485 ms]build放在“F:\ctcb\ctcb.web\WebContent\WEB-INF\classes\com\helloasia\tiger\rmi”下
    OPTIONS_RMI.MF:
    -classpath .;F:\ctcb\ctcb.web\JavaSource\com\helloasia\tiger\rmi
    -d .
    -g
    -iiop
    -verbose
    CLASSES_RMI.MF:
    AbstractRMIServerImpl
    是不是哪里写错了?
      

  3.   

    AbstractRMIServerImpl连包名什么的都写上
      

  4.   

    你说的加上包名什么的,是对CLASSES_RMI.MF的内容吗?
    我在CLASSES_RMI.MF中做了如下三种修改:
    1
    com.helloasia.tiger.rmi.AbstractRMIServerImpl
    F:\ctcb\ctcb.web\WebContent\WEB-INF\classes\com\helloasia\tiger\rmi>rmic @build/
    OPTIONS_RMI.MF @build/CLASSES_RMI.MF
    error: Class com.helloasia.tiger.rmi.AbstractRMIServerImpl not found.
    1 error
    [done in 219 ms]
    2
    com.helloasia.tiger.rmi.AbstractRMIServerImpl.class
    F:\ctcb\ctcb.web\WebContent\WEB-INF\classes\com\helloasia\tiger\rmi>rmic @build/
    OPTIONS_RMI.MF @build/CLASSES_RMI.MF
    error: Class com.helloasia.tiger.rmi.AbstractRMIServerImpl.class not found.
    1 error
    [done in 250 ms]
    3
    AbstractRMIServerImpl.class
    F:\ctcb\ctcb.web\WebContent\WEB-INF\classes\com\helloasia\tiger\rmi>rmic @build/
    OPTIONS_RMI.MF @build/CLASSES_RMI.MF
    error: Class AbstractRMIServerImpl$class not found.
    1 error
    [done in 266 ms]
    还是没有成功,
      

  5.   

    com.helloasia.tiger.rmi.AbstractRMIServerImpl《--这个是对的把build文件夹放在F:\ctcb\ctcb.web\WebContent\WEB-INF\classes下
    并在F:\ctcb\ctcb.web\WebContent\WEB-INF\classes下运行RMIC……试试
      

  6.   

    这是AbstractRMIServerImpl的信息
    public interface AbstractRMIServer extends Remote
    public class AbstractRMIServerImpl extends UnicastRemoteObject implements AbstractRMIServer
    下面的错误
    F:\ctcb\ctcb.web\WebContent\WEB-INF\classes>rmic @build/OPTIONS_RMI.MF @build/CL
    ASSES_RMI.MF
    [loaded .\com\helloasia\tiger\rmi\AbstractRMIServerImpl.class in 32 ms]
    [loaded C:\j2sdk1.4.2_06\jre\lib\rt.jar(java/rmi/server/UnicastRemoteObject.clas
    s) in 0 ms]
    [loaded C:\j2sdk1.4.2_06\jre\lib\rt.jar(java/rmi/server/RemoteServer.class) in 0
     ms]
    [loaded C:\j2sdk1.4.2_06\jre\lib\rt.jar(java/rmi/server/RemoteObject.class) in 0
     ms]
    [loaded C:\j2sdk1.4.2_06\jre\lib\rt.jar(java/lang/CloneNotSupportedException.cla
    ss) in 0 ms]
    [loaded .\com\helloasia\tiger\rmi\AbstractRMIServer.class in 0 ms]
    error: java.rmi.server.RemoteServer is not a valid remote implementation: has no
     remote interfaces.
    1 error
    [done in 906 ms]
      

  7.   

    http://www.xbox-sky.com/viewthread.php?tid=64817&page=1&sid=Tcz5MU#pid702307
    要还不行那RP了!
      

  8.   

    真是很感谢“困了”,现在是可以用rmic命令了,不过我是用我的AbstractRMIServerImpl.java和AbstractRMIServer.java代替你用的例子,结果产生_AbstractRMIServer_Stub.class、AbstractRMIServer.class、AbstractRMIServerImpl.class,唯独没有需要的_AbstractRMIServerImpl_Stub.class。
      

  9.   

    AbstractRMIServerImpl改成继承javax.rmi.PortableRemoteObject
    我用的是RMI-IIOP那套
      

  10.   

    把AbstractRMIServerImpl改成继承javax.rmi.PortableRemoteObject后,其他UnicastRemoteObject的方法就不能用了,编译的时候会出错,我看UnicastRemoteObject最终还是继承的RemoteObject,也有toStub方法啊,以前用自动生成stub插件的时候也能生成,为什么现在只是生成_AbstractRMIServerImpl_Tie.class而不是_AbstractRMIServerImpl_Stub.class呢?
      

  11.   

    为什么只能生成一个macad_Stub.class文件呢?而macad_Skel.class没有呢?