像这种问题完全可以看书就可以解决了!:) 个人认为提问前自己首先尽可能察看资料,实在不解再问,学习效果或许更好哦!:)源码里的命名绑定需要将locolhost改为你的服务器端的主机名,然后将类文件打包(包括stub)存放到你的客户端classpath路径下,服务段运行start rmiregistry;运行你的rmi服务段客户端运行即可

解决方案 »

  1.   


    To: javer6(孤舟万里) 非常感谢你得讲解。
    可是我只有一台电脑,怎么办啊?
      

  2.   

    start rmiregistry
    //下面假设你的 c15.ptime 包位于 c:\temp 目录下面,
    //服务器
    java -classpath c:\temp  -Djava.rmi.server.codebase=file:///c:\temp c15.ptime.PerfectTime //客户端 
    java -classpath c:\temp  c15.ptime.PerfectTime DisplayPerfectTime好久不干rmi,可能都错了!!
    不过,你的代码好像有问题!!
    bind 到2005 端口,你的 rmiregistry 也应该改成
     start rmiregistry 2005 啊!顺便说说,jdk1.5 简化了好多!!
      

  3.   

    start java -classpath c:\temp  -Djava.rmi.server.codebase=file:///c:\temp c15.ptime.PerfectTime //客户端 
    start java -classpath c:\temp  c15.ptime.PerfectTime DisplayPerfectTime
    啊!!
      

  4.   


    To:hesi726(hesi)能说一下在JDK1.5里面怎么运行吗?谢谢
    我想用1.5了 :(
      

  5.   

    To:hesi726(hesi) // 错误信息如下
    // 怎么回事啊java -classpath d:\myclasspath -D java.rmi.server.codebase=file:///d:\myclasspath c15.ptime.PerfectTime
    Exception in thread "main" java.lang.NoClassDefFoundError: java/rmi/server/codebase=file:///d:\myclasspath//------------------------------------------------------------------------------
    java -classpath d:\myclasspath c15.ptime.PerfectTime DisplayPerfectTime
    Exception in thread "main" java.lang.NoClassDefFoundError: c15/ptime/PerfectTime
      

  6.   

    错误信息:
    D:\!J_src\_swing\rmi01>java c15.ptime.PerfectTime
    java.security.AccessControlException: access denied (java.net.SocketPermission s
    c resolve)
            at java.security.AccessControlContext.checkPermission(AccessControlConte
    xt.java:269)
            at java.security.AccessController.checkPermission(AccessController.java:
    401)
            at java.lang.SecurityManager.checkPermission(SecurityManager.java:524)
            at java.lang.SecurityManager.checkConnect(SecurityManager.java:1023)
            at java.net.InetAddress.getAllByName0(InetAddress.java:1000)
            at java.net.InetAddress.getAllByName0(InetAddress.java:981)
            at java.net.InetAddress.getAllByName(InetAddress.java:975)
            at java.net.InetAddress.getByName(InetAddress.java:889)
            at java.net.InetSocketAddress.<init>(InetSocketAddress.java:114)
            at java.net.Socket.<init>(Socket.java:124)
            at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirect
    SocketFactory.java:22)
            at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMaster
    SocketFactory.java:128)
            at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:562)
            at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185
    )
            at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
            at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:313)
            at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)
            at java.rmi.Naming.bind(Naming.java:111)
            at c15.ptime.PerfectTime.main(PerfectTime.java:30)
      

  7.   

    去sun看看rmi的tutorial吧  肯定可以解决你的问题  core java2里面对rmi也有很多说明
      

  8.   

    上面的问题解决了!
    我把
    System.setSecurityManager(
          new RMISecurityManager());
    给注释掉了。但是,谁能给解释一下,为什么注释掉以后,就可以正常运行了。