2015-04-05 87 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