├─client
│  └─c15
│      └─rmi
│              DisplayPerfectTime.class
│              PerfectTimeI.class
└─server
    └─c15
        └─rmi
                PerfectTime.class
                PerfectTimeI.class
这样的目录结构有问题,你将c15.rmi分成了在两个不同文件中的两个目录当然有问题,
(!)你可以在源文件中用命令 javac -d . *.java生成对应package的文件,package和文件结构要对应
(2)在当前目录中建立一个c15\rmi的目录,将编译生成后的class文件拷贝进去.

解决方案 »

  1.   

    我按楼上的建议去做G:\Bean\RmiTest>javac -d . PerfectTimeI.java PerfectTime.java DisplayPerfectTime
    .javaG:\Bean\RmiTest>rmic c15.rmi.PerfectTimeG:\Bean\RmiTest>start rmiregistry 2005G:\Bean\RmiTest>java -Djava.rmi.server.codebase=file:///g:/bean/rmitest/ -Djava.
    security.policy=file:///g:/bean/rmitest/policy c15.rmi.PerfectTime还是出错
    Exception in thread "main" java.rmi.ServerException: Server RemoteException; nes
    ted exception is:
            java.rmi.UnmarshalException: error unmarshalling arguments; nested excep
    tion is:
            java.lang.ClassNotFoundException: c15.rmi.PerfectTime_Stub
            at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknow
    n Source)
            at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
            at sun.rmi.server.UnicastRef.invoke(Unknown Source)
            at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)
            at java.rmi.Naming.bind(Unknown Source)
            at c15.rmi.PerfectTime.main(PerfectTime.java:20)
    Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested ex
    ception is:
            java.lang.ClassNotFoundException: c15.rmi.PerfectTime_Stub
    Caused by: java.lang.ClassNotFoundException: c15.rmi.PerfectTime_Stub
      

  2.   

    G:\Bean\RmiTest>rmic c15.rmi.PerfectTime
    这一步生成的两个class也应该放到c15\rmi下;
      

  3.   

    G:\Bean\RmiTest>rmic c15.rmi.PerfectTime这一步已经自动把生成的两个class放在c15\rmi下
    还是不行
      

  4.   

    如果这个不行的话,你看看jdk docs下rmi介绍的那个例子,或者到blog.csdn.net/zhutouzip看看我写的一个rmi!
      

  5.   

    我运行了楼上的那个rmi程序
    做到第五步就出同样的异常:Exception in thread "main" java.rmi.ServerException: Server RemoteException; nes
    ted exception is:
            java.rmi.UnmarshalException: error unmarshalling arguments; nested excep
    tion is:
            java.lang.ClassNotFoundException: net.xiaobo.remoteserver.HelloRemoteImp
    _Stub
            at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknow
    n Source)
            at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
            at sun.rmi.server.UnicastRef.invoke(Unknown Source)
            at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)
            at java.rmi.Naming.bind(Unknown Source)
            at net.xiaobo.remoteserver.HelloRemoteImp.main(HelloRemoteImp.java:18)
    Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested ex
    ception is:
            java.lang.ClassNotFoundException: net.xiaobo.remoteserver.HelloRemoteImp
    _Stub
    Caused by: java.lang.ClassNotFoundException: net.xiaobo.remoteserver.HelloRemote
    Imp_Stub
      

  6.   

    我确实成功了,或者我们的classpath设置不一样吧!你是否在classpath中包括了".;"
    如果按照我的步骤不行,你在docs文档中rmi这块找到附带的那个例子,按照它上面的步骤运行一下,看看有什么情况!
      

  7.   

    我是在classpath中包括了".;",有影响吗?