如何从Java执行完全独立的应用程序。喜欢独立的过程

时间:2012-01-04 15:39:15

标签: java multithreading swing windows-7 process

我有一个主要的应用程序启动另外两个进程,我只需要将它们作为一个独立的进程启动。比如在不使用或共享我的主应用程序启动器进程内存或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);
}

1 个答案:

答案 0 :(得分:7)

对于 Windows ,请使用cmd /c start ...,其中'...'是您要调用的命令。

Runtime.getRuntime().exec("cmd /c start java -cp /var/dist/test.jar main.main")

对于 Linux ,在命令末尾添加&以启动守护进程。