Java - 如何关闭RMI注册表?

时间:2017-11-14 19:52:10

标签: java rmi

我正在开发一个使用RMI的程序。主进程启动RMI Registry和子进程,后者创建对象并将其绑定到注册表中。我面临的最大问题是我无法正常关闭RMI Registry。我发现我可以使用

UnicastRemoteObject.unexportObject(registry, true);

当然,注册表由LocateRegistry.createRegistry函数返回。它使注册表关闭其端口,但运行注册表的java进程仍然存在。 所以问题是:如何用它的进程关闭RMI注册表?即使我试图运行

registry = LocateRegistry.createRegistry(1099);
UnicastRemoteObject.unexportObject(registry, true);

(显然没有意义),程序完成后,该过程仍然存在。

1 个答案:

答案 0 :(得分:0)

我在4秒内运行你的代码,然后退出了。您必须已启动其他非守护程序应用程序线程。您可以完成所有操作,然后拨打System.exit()。如果您发现太暴力,请确保所有应用程序线程都已退出。