猿问

我以为是当执行这个命令后系统会自动执行?

process = Runtime.getRuntime().exec("cmd /c C:\\Users\\yutaoaijingjing\\AppData\\Roaming/Xdf/updates\\1.exe"); 
System.exit(0); 
这个1.exe时间很长,然后我以为是当执行这个命令后系统会自动执行,然后关闭虚拟机就可以了,但是发现 这个System.exit竟然没有执行到,他要等process !!!我现在想要的是,我执行一个文件,当开始执行后,立马关闭虚拟机,且这个文件继续执行

慕的地8271018
浏览 111回答 2
2回答

慕慕森

很有意思的问题,试了很多方法都没达到要求。 现在能想到的最好方法是Thread hook = new Thread() {      public void run() {          try {              Runtime.getRuntime().exec("cmd /C D:/1.exe");          } catch (IOException e) {              e.printStackTrace();          }      }  };  Runtime.getRuntime().addShutdownHook(hook);  Thread shutdown=new Thread(){      Object waiter=new Object();      public void run(){          synchronized(waiter){              try {                  waiter.wait(1000);              } catch (InterruptedException e) {              }          }          Runtime.getRuntime().halt(0);      }  };  Runtime.getRuntime().addShutdownHook(shutdown);    System.exit(0);  

德玛西亚99

这肯定咯,你启动的exe文件和你的项目程序是不同进程,互相管不到的
随时随地看视频慕课网APP

相关分类

Java
我要回答