gpt4 book ai didi

java - 等待完成的 Java 进程

转载 作者:行者123 更新时间:2023-11-29 06:00:59 24 4
gpt4 key购买 nike

我有一个调用可执行 jar 的 java 应用程序(主体):

Process p = Runtime.getRuntime().exec(java -jar C:\\PFC\\maestro.jar)
p.waitFor();

maestro.jar 是一个 Java 应用程序,它创建 2 个线程,并调用另一个可执行 jar(进程变量是“b”)。然后我这样等他们:

    b.destroy();  //kill other executable jar that is called
manejadora.join(); //thread finished
controlador.join(); //thread finished
System.out.println("all finished");

maestro.jar 运行正确,当我运行它时它在 eclipse 上显示“已终止”,所以没有问题。

当委托(delegate)人尝试运行 maestro.jar 时,它运行正确,但当 maestro.jar 已经完成时,委托(delegate)人继续在“p.waitFor()”上等待 maestro.jar。

我不明白为什么。

你能给我一些方向吗?非常感谢!

最佳答案

这可能是因为进程可能正在控制台上输出您没有在单独线程中使用的内容。阅读这篇文章了解更多信息:

http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html

apache exec 库可以很好地为您完成所有这些事情。使用该库来解决您的问题。

http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html

关于java - 等待完成的 Java 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10088092/

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