You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java RMI程序输出Ready后直接关闭,无法等待客户端连接求助

问题:RMI服务启动输出“Ready”后直接退出

我已经被这个问题困扰数小时了。以下是我的主程序代码:

public class Main
{
    public static void main(final String[] args)
    {
        try
        {
            System.setProperty("java.rmi.server.hostname", "127.0.0.1");
            ServerInterface server = (ServerInterface) UnicastRemoteObject.exportObject(new Server(), 0);

            Registry registry = LocateRegistry.createRegistry(Configuration.rmiPort);
            registry.bind("server", server);
            System.out.println("Ready");
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
}

Server类包含业务逻辑(目前仅实现一个输出文本的方法)。每次编译运行该程序,输出“Ready”后就直接关闭。我在Stack Overflow上找到类似问题的帖子,已尝试以下方案:

  • 将注册表对象保存到静态字段
  • 使用外部rmiregistry(出现反序列化异常)
  • 用rebind替代bind
  • 在导出前将待导出对象保存到静态字段

我原本以为,一旦将对象导出到注册表,线程应保持存活并等待连接,无论导出对象是否为本地声明。这个问题会不会是Maven导致的?因为这段代码来自YouTube教程,我本地用javac和java命令运行正常,但在服务器上用mvn clean install exec:java运行时就出现此问题。

内容的提问来源于stack exchange,提问作者Ceriana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 22:57:17