1

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

4

1 回答 1

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.

于 2013-03-07T04:18:54.050 回答