我写了一个java程序,当卡片显示给传感器时,可以读取rfid卡的epc代码。 现在,我需要一个可以终止正在读取卡片的程序的不同程序。 在我的程序中,我编写了一个可以停止读卡的功能,但我不知道如何在其他程序中使用该功能来终止当前正在运行的程序
答案 0 :(得分:1)
这个问题非常开放,并不是特定于Java的。有很多种inter-process communication,请你选择。
顶部的几个选项:
启动时将第一个进程的PID存储在文件中,然后第二个进程可以通过发送终止信号来停止它。这是一个轻量级选项,因为它不涉及修改第一个进程,但缺点是特定于平台并且无法跨越机器边界。
让第一个进程充当某种基于套接字的服务器,第二个进程将其作为客户端访问。这很好,因为它可以在网络上运行,如果您最终需要扩展IPC的范围(例如添加身份验证,除了终止之外的其他功能等),您可以利用现有的procotol,并且您可以利用现有的客户端(例如,如果你使用HTTP,也许你只是使用curl而不是用Java在第二个过程中构建一些东西)。
使用像Akka这样的消息传递平台或某些RPC库。如果你想把你的思想放在JVM中并尽可能少地学习其他任何东西,你可能会采取其中一种方法,但是你最终将这两种处理结合在一起并达到了一定的程度。听起来很有必要。