gpt4 book ai didi

Javaw 在启动外部应用程序时未终止

转载 作者:太空宇宙 更新时间:2023-11-04 14:50:30 34 4
gpt4 key购买 nike

我的应用程序启动本地 Windows 应用程序,例如使用 JVM 运行时的计算器。

我正在遵循 http://www.javaworld.com/article/2071275/core-java/when-runtime-exec---won-t.html 中的示例和教程

当我使用类似 dir- 的 shell 命令时,我的应用程序成功终止。但是,当我启动时,例如计算器,我的应用程序仅在退出计算器后终止。如何将启动的应用程序与我的 JVM 解耦?

这是我的代码:

            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 应用程序?通常,等待进程终止并没有什么问题。否则,无法获取子进程的退出值。

关于Javaw 在启动外部应用程序时未终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23855750/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com