命令行:rmiregistry xxxx程序方式:
int port=xxxx;
Registry reg = null;
reg = LocateRegistry.createRegistry(port);xxxx 自己指定的端口

解决方案 »

  1.   

    bdsc():谢谢回复!
     
    我知道命令行:rmiregistry xxxx方式的使用。而程序方式还有点不清楚:是把上面的代码加到MyRMIServer里吗?编译是出错: cannot resolve symbol,什么原因?怎么解决?
      

  2.   

    不用了,只要你的Naming.rebind()的端口和你rmiregistry ***的端口号一致就可以了,当然你还需先确认你使用的端口没有被占用。
      

  3.   

    import java.rmi.Naming;
    import java.rmi.registry.LocateRegistry;RemoteObject theServer=new RemoteObject(myName);
    LocateRegistry.createRegistry(2005);
    Naming.rebind("//computername:2005/"+myName,theServer);你没有把该包含的包包含进去。
      

  4.   

    还有个小问题:
    我是用pentax提的方法:
    在我的代码中加入
    import java.rmi.registry.LocateRegistry;
    ......LocateRegistry.createRegistry(portNum);
    测试成功。
    不知bdsc提到的:
    Registry reg = null;//请问这里的Registry 是什么?
    reg = LocateRegistry.createRegistry(port);//为什么要赋值给Registry?
      

  5.   

    Registry是一个注册远程对象的接口,也可以绑定服务器,你可以看一下J2EE高级编程,好像是乐思的吧。那上边讲的比较好,也比较新和深。其实RMI是J2ee的基础,很多框架都是基于此,譬如EJB。
      

  6.   

    谢谢pentax() !!!
    那么这里使用Registry和不使用有什么不同吗?为什么我使用
    Registry reg = null;//请问这里的Registry 是什么?
    reg = LocateRegistry.createRegistry(port);//为什么要赋值给Registry?编译不过?是没有import什么包吗?
    而只用LocateRegistry.createRegistry(port);也能实现。为什么?
      

  7.   

    其实关键是LocateRegistry.createRegistry(port);这句话要执行到,
    有没有获得Registry句柄倒不重要。