程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Java RMI 应用程序不会退出

发布于2021-10-29 21:32     阅读(1424)     评论(0)     点赞(24)     收藏(4)


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

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

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().

如果是这样,我不知道为什么ClientImpleven一个远程对象。你没有用它做任何远程操作。你不和远程做任何事情在这里除了注册表。我认为你有一些事情回到前面。您应该在s查找的远程对象上调用远程方法



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/306510/803b4b2996db410a902d/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

24 0
收藏该文
已收藏

评论内容:(最多支持255个字符)