Java 进程间通信

4

我有一个情况,需要向正在运行的Java应用程序发送命令,现在我使用TCP/IP套接字通过Internet Explorer上下文菜单项向应用程序发送命令。但是一旦应用程序启动,病毒扫描器就会抱怨应用程序已开始监听,尽管我只监听本地连接。我认为这可能会令用户感到困惑。我正在寻找其他通信方式,以避免激怒杀毒软件扫描程序。

3个回答

4
为此,最好使用基于文件的FIFO队列。或者使用Java Native Access / Java Native Interface写入命名管道或共享内存。如果您选择JNA / JNI路线,可以创建命名事件。但是,可能没有任何有效的方法来实现您想要的内容,而不使用JNA / JNI路线。

3

1

套接字是进行IPC的传统方式,但如果您真的想避免使用它们,您可能可以通过使用本地文件系统来想出一个解决方法。您不会想使用标准文件读取/写入,因为您很可能希望在文件系统中有效地实现队列。

如果我要通过文件系统实现IPC,我可能会使用SQLite(编译时可以是线程安全的),并为每个侦听器使用一个表。我可能会使用单列表来插入消息,而侦听器只需提取具有最低rowid的行,然后删除该行。

但我的方法与Java无关,因此可能有更好的方法来使用Java(例如@darthcoder的响应)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接