在新进程中启动Java应用程序

时间:2014-10-10 10:52:29

标签: java process exec processbuilder

我有一个我启动的Java应用程序,例如用" ant myapp"。现在我希望这个应用程序复制自己,即在新进程中启动它的新实例。

我知道应该使用Processbuilder或Runtime.exec()来完成。

如果我只是在Processbuilder或Runtime.exec(' ant myapp')中调用它,它将启动一个新的JVM并在一个单独的进程中运行它。这是对的吗?

但我也听说可以在新进程中运行应用程序,但是在同一个JVM中。我怎么能这样做?

如果我没有新的JVM,那么消耗的内存就会减少。但是,如果新进程在同一个JVM中运行,有什么缺点?我有很多套接字连接到应用程序中的服务器。所以,在不创建新的JVM时,这可能是一个问题吗?

1 个答案:

答案 0 :(得分:0)

看看ExecutorService。你可以集中它们,设置超时等等。

对于套接字,内存,CPU:您应该分析您的应用程序,以确保您正确使用有限资源。这适用于所有Java应用程序。通过猜测或询问,你无法知道答案。每种情况都不同。要知道的唯一方法是通过分析来获取一些数据。