本站消息

站长简介/公众号


站长简介:逗比程序员,理工宅男,前每日优鲜python全栈开发工程师,利用周末时间开发出本站,欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,java大神匠心打造,零基础java开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

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


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Java RMI 应用程序不会退出

发布于2021-10-29 21:32     阅读(1028)     评论(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个字符)