[英]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.