从多线程客户端调用独立Java程序

时间:2013-03-07 04:14:08

标签: java parallel-processing

我有第三方独立Java程序。我想从Java客户端运行它,它将通过多个线程调用该程序来实现并行执行。挑战在于,此第三方程序从环境变量中读取配置参数。我不希望并行线程覆盖彼此的配置。此外,由于我的客户端和第三方程序都是用Java编写的,如果我可以避免创建多个JVM进程,那么它将是很有价值的补充。

1 个答案:

答案 0 :(得分:1)

您可以使用ProcessBuilder,并填充environment()方法返回的地图。

ProcessBuilder builder = new ProcessBuilder("java -cp . Foo");
Map<String, String> environment = builder.environment();
environment.put("Foo", "Bar");
environment.put("X", "Y");
Process process = builder.start();

由于每个流程都有自己的环境,因此应该是安全的。

或者,您可以使用Runtime.exec