Java相当于Ant的Java任务中的fork?

Ant Java任务提供了fork参数,根据定义“如果启用则触发另一个VM中的类执行” 。 当我们处理大量数据时,设置此参数可以使我们免于耗尽Java堆空间。
我们希望能够通过Java类做同样的事情。 实现fork提供的function的最佳方法是什么?

执行另一个java进程。 例如,通过使用ProcessBuilder类。

http://java.sun.com/javase/6/docs/api/java/lang/ProcessBuilder.html

您可以根据需要运行任意数量的工作进程。 让他们拥有一个单独的主类,从主类中完成他们的任务,并在他们的任务完成时退出。

你必须弄清楚他们的类路径,以及系统上java二进制文件的位置,但这是可行的。

我想你甚至可以通过Process.waitFor()完成通知。

如果你查看ant源代码,当forktrue ,它只包装一个Execute任务,最终,被调用的代码是

 Runtime.getRuntime().exec(cmd, env); 

下载并查看org.apache.tools.ant.taskdefs.Javaorg.apache.tools.ant.taskdefs.Execute的源代码将为您提供一些很好的指针,帮助您找到要在其中运行的可执行文件的位置平台独立方式等

我想你可以直接使用Ant API …… Ant可以直接在Java类中使用。 Javadoc可以二进制分发。