簡體   English   中英

等待完成的 Java 進程

[英]Waiting for finished Java-process

我有一個調用可執行文件 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 上顯示“終止”,所以沒有問題。

當委托人嘗試運行 maestro.jar 時,它運行正確,但當 maestro.jar 已經完成時,委托人繼續在“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

問題解決了。

我不得不退出所有“System.out.println();” 句子。

所以我必須做一個日志才能看到程序活動。

謝謝大家:-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM