我有一个主要的应用程序启动另外两个进程,我只需要将它们作为一个独立的进程启动。比如在不使用或共享我的主应用程序启动器进程内存或cpu的情况下运行它们。
但是当我像这样推出它时,其他两个进程都没有被执行(他们创造了两个新进程但不是虚构的),除非我杀死主进程。我的计划是在Windows下执行它,就像执行THREE应用程序的THREE命令提示符一样。
我如何解决它以便完全独自完成三个执行?
/*This is Process 1 itself*/
try {
if (myStock.getOs().equals("Linux"))
{
Runtime.getRuntime().exec("java -cp /var/dist/test.jar main.main");
Runtime.getRuntime().exec("java -cp /var/dist/test.jar www.webserver_starter");
} else {
/*Windows 7 only*/
String WindowsTemp = System.getenv("MY") + "\\";
/*This is Process 2*/
Runtime.getRuntime().exec("java -cp " + WindowsTemp + "dist\\test.jar main.main");
/*This is Process 3*/
Runtime.getRuntime().exec(
"java -cp " + WindowsTemp + "dist\\test.jar www.webserver_starter");
}
} catch(Exception e) {
System.out.println(e);
}
答案 0 :(得分:7)
对于 Windows ,请使用cmd /c start ...
,其中'...'
是您要调用的命令。
Runtime.getRuntime().exec("cmd /c start java -cp /var/dist/test.jar main.main")
对于 Linux ,在命令末尾添加&
以启动守护进程。