2015-04-05 88 views
0

我試圖運行2個進程使用Processbuilder ..事情是我想知道是否有可能在兩個進程中使用共享變量?具有共享變量的Java Processbuilder

讓說,我有誰創建和運行其他方法P1和P2 和一個整數(i)以main_p聲明main_p,我可以以某種方式傳遞變量的引用或使從P1和P2的變量訪問在同一時間?

main_p提前

ProcessBuilder pb1 = new ProcessBuilder("java", "-jar", process_1_path, param); 
Process p1 = pb1.start(); 
BufferedReader in1 = new BufferedReader(new InputStreamReader(p1.getInputStream())); 
ProcessBuilder pb2 = new ProcessBuilder("java", "-jar", process_2_path, param); 
Process p2 = pb2.start(); 
BufferedReader in2 = new BufferedReader(new InputStreamReader(p2.getInputStream())); 

感謝。

+0

您正在運行兩個Java程序,您想要進行通信 - 是否考慮過線程? – alfasin 2015-04-05 05:27:49

+0

我已經實現使用線程相同的東西..但我需要再次實現它使用多進程 – Krack 2015-04-05 05:29:23

回答

0

您可以在進程之間創建管道(通過Processes Input/OutputStream)並使用它交換數據。或者通過文件或數據庫或RMI或JMS

+0

我認爲這可以工作,如果我需要先運行進程,當它完成然後我運行其他進程,並通過param我retrived第一個使用I/O streems。 但我需要在同一時間(幾乎同時)運行它們 – Krack 2015-04-05 05:24:13

+0

我認爲使用文件共享數據,如果沒有其他方式:) – Krack 2015-04-05 05:33:01

+0

如果你啓動像你在Q顯示的過程,然後管應該工作 – 2015-04-05 05:34:09