JavaRMI-检查注册表是否存在

JavaRMI-检查注册表是否存在,java,rmi,rmiregistry,Java,Rmi,Rmiregistry,我在使用JavaRMI时遇到了一些小问题 我是否可以检查注册表是否存在? 这行代码应该给我注册表 LocateRegistry.getRegistry(ip, Registry.REGISTRY_PORT); 但是当我使用错误的IP地址调用它,或者使用找不到注册表的IP地址调用它时,该方法就会被卡住 所以我的问题是,在调用getRegistry()之前,我是否可以检查某个IP地址是否有注册表?否。在任何情况下,测试任何资源可用性的最佳方法都是尝试使用它。在本例中,调用lookup()并捕获异常

我在使用JavaRMI时遇到了一些小问题

我是否可以检查注册表是否存在? 这行代码应该给我注册表

LocateRegistry.getRegistry(ip, Registry.REGISTRY_PORT);
但是当我使用错误的IP地址调用它,或者使用找不到注册表的IP地址调用它时,该方法就会被卡住


所以我的问题是,在调用getRegistry()之前,我是否可以检查某个IP地址是否有注册表?

否。在任何情况下,测试任何资源可用性的最佳方法都是尝试使用它。在本例中,调用lookup()并捕获异常。无论如何,你必须这样做,所以做两次是毫无意义的。

我明白了。我就是这样做的。问题是,getRegistry()方法阻塞了程序。我能够在几分钟后检查方法是否返回,然后lookup抛出异常。不幸的是,在我的用例中,这太慢了。@X.X_Mass_Developer方法getRegistry()不应该阻止程序。它不做任何网络操作。我可以想象lookup()阻塞:而不是getRegistry()。你当然是对的!阻塞的是查找。那么我可以检查getRegistry()返回的注册表是否有效吗?如果我调用list()检查我锁定的服务器是否存在,它也会阻塞。@X.X_Mass_Developer正如我所说,最好的方法是尝试使用它。您应该查看RMI系统属性页面,以了解调整各种超时的方法。这个问题很久以前就提出了,但据我所知,我无法找到这些页面。出于好奇,你能提供链接吗?