代码之家  ›  专栏  ›  技术社区  ›  Hamza Yerlikaya

Java进程间通信

  •  3
  • Hamza Yerlikaya  · 技术社区  · 15 年前

    我需要将命令发送给正在运行的Java应用程序,现在我正在使用TCP/IP套接字使用Internet Explorer上下文菜单项向应用程序发送命令。但是一旦应用程序启动,病毒扫描程序就会抱怨应用程序开始监听,尽管我只是在监听本地连接。我认为这可能会让用户感到困惑。我正在寻找其他的沟通方式,而不激怒AV扫描器?

    4 回复  |  直到 15 年前
        1
  •  4
  •   Chris K    15 年前

    为此,最好使用基于文件的FIFO队列。或使用Java本机访问/ Java本机接口写入名称管或共享内存。如果您使用JNA/JNI路由,可以创建一个 Named Event .

    但是,如果不走JNA/JNI路线,可能就没有办法以任何效率去做你想要做的事情。

        2
  •  3
  •   akf    15 年前

    你可以用 Java Management Extentions (JMX) 通过简单的Web界面公开正在运行的进程中的方法。

        3
  •  1
  •   Mark Rushakoff    15 年前

    插座几乎是传统的工控机方式,但是如果你 真的? 想避开他们,你 可以 能够使用本地文件系统提出解决方案。您不希望使用标准的文件读/写,因为您很可能希望在文件系统中有效地实现一个队列。

    如果 如果要通过文件系统实现IPC,我可能会使用sqlite( which can be threadsafe when compiled so) 为每个听众准备一张桌子。我可能会使用一个单列表来插入消息,而监听器只会用最下面的一行 rowid ,然后删除所述行。

    但是我的方法根本不是Java特有的,所以可能有更好的方法使用Java(例如@ DaTurbo的响应)。

        4
  •  -1
  •   joeslice    15 年前

    在这个场景中,很多人使用类似JMS的东西。