2014-10-18 46 views
-2

我已經寫了一個java程序,可以在卡被顯示給傳感器時讀取rfid卡的epc代碼。 現在,我需要一個可以終止正在讀卡的程序的不同程序。 在我的程序中我寫了一個函數,可以停止讀取卡,但我不知道如何在其他程序中使用該函數來終止當前正在運行的程序可以終止另一個java程序的java程序

+5

什麼問題?你能提供你的代碼嗎? – ferhan 2014-10-18 06:26:13

+0

您需要找到兩種程序相互通信的方式。但是也許你應該重新考慮你的整個設計,爲什麼首先有兩個程序? – Henry 2014-10-18 06:48:39

回答

1

這個問題是相當開放的,而不是真的針對Java。有很多種inter-process communication,請選擇。

有幾個選項關閉頂部:

  • 存放在一個文件,當您啓動它,然後第二個過程可以通過發送一個kill信號,停止第一個進程的PID。這是一個輕量級選項,因爲它不涉及修改第一個進程,但具有平臺特定且不能跨越機器邊界的缺點。

  • 將第一個進程用作某種基於套接字的服務器,第二個進程將其作爲客戶端進行訪問。這很好,因爲它可以通過網絡工作,如果最終需要擴展IPC的範圍(例如添加驗證,除了終止之外的其他功能等),則可以利用現有的協議,並且可以充分利用現有的客戶端(例如,如果您使用HTTP,也許您只是使用curl而不是爲第二個進程構建Java中的某些內容)。

  • 使用類似Akka的消息傳遞平臺或某個RPC庫。如果你想讓自己的思想留在JVM中,並儘可能少地學習其他任何東西,你可以採取其中一種方法,但最終你會將兩種處理結合到一起,這聽起來並不是必需的。