Javaw在启动外部应用程序时未终止
我的应用程序启动本地Windows应用程序,例如使用JVM运行时的计算器 我将遵循来自的示例和教程 当我使用像dir-这样的shell命令时,我的应用程序将成功终止。但是,当我启动例如计算器时,我的应用程序仅在退出计算器后终止。 如何将启动的应用程序与JVM分离 这是我的密码:Javaw在启动外部应用程序时未终止,java,runtime.exec,Java,Runtime.exec,我的应用程序启动本地Windows应用程序,例如使用JVM运行时的计算器 我将遵循来自的示例和教程 当我使用像dir-这样的shell命令时,我的应用程序将成功终止。但是,当我启动例如计算器时,我的应用程序仅在退出计算器后终止。 如何将启动的应用程序与JVM分离 这是我的密码: Runtime rt = Runtime.getRuntime(); System.out.println("Execing " + cmd[0] + " " + cmd[1]
Runtime rt = Runtime.getRuntime();
System.out.println("Execing " + cmd[0] + " " + cmd[1]
+ " " + cmd[2]);
Process proc = rt.exec(cmd);
// any error message?
StreamGobbler errorGobbler = new
StreamGobbler(proc.getErrorStream(), "ERROR");
// any output?
StreamGobbler outputGobbler = new
StreamGobbler(proc.getInputStream(), "OUTPUT");
// kick them off
errorGobbler.start();
outputGobbler.start();
// any error???
int exitVal = proc.waitFor();
System.out.println("ExitValue: " + exitVal);
有什么建议吗?您可以使用等待进程终止的proc.waitFor()
。这就是为什么您的应用程序只有在启动的应用程序终止后才会终止的原因
为什么要立即终止Java应用程序?通常,等待进程终止没有什么错。否则,无法获取子进程的退出值。我希望终止我自己的线程。waitfor不是我的问题,我的主线程以exitcode 0结束。但是,我也想关闭我的JVM。