gpt4 book ai didi

Java RMI 应用程序不退出

转载 作者:行者123 更新时间:2023-11-30 06:22:01 28 4
gpt4 key购买 nike

我有一个 Java RMI 应用程序。问题是当我调用 RMI 方法,然后完成代码时。申请并没有结束。

在命令行中,显示“再见”消息,但不显示提示行。

public static void main(String args[]) throws Exception {
...
System.setSecurityManager(new RMISecurityManager());
s = (Registry) Naming.lookup("rmi://localhost/Registry");
ChatClientImpl c = new ChatClientImpl(name);
c.act(s);
System.out.println("Bye"); <-- "Bye" message is shown
}

我必须按 ^C 才能停止应用程序。

act() 方法解析用户的输入以调用其他方法。但是,即使我只是退出而不调用任何其他方法,Java 也不会退出。

可能出了什么问题?我是否需要调用额外的方法才能退出 RMI 应用程序?

最佳答案

看起来 ClientImpl 是一个远程对象,它仍然是导出的,所以 JVM 不会退出,直到您使用 UnicastRemoteObject.unexportObject() 取消导出它。

如果是这样,我不知道为什么 ClientImpl 甚至 是一个远程对象。你没有用它做任何远程的事情。除了注册表之外,您不会在此处使用任何 进行任何远程操作。我认为你有一些东西回到前面。您应该在您查找的远程对象 s 上调用远程方法。

关于Java RMI 应用程序不退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19760142/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com