Re: [問題] 使用runtime呼叫bat檔

看板java作者 (小安)時間15年前 (2010/12/17 17:41), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《fiend1212 (YOOOOOOOOOOOOOOOOOOOOOO)》之銘言: : 不好意思請問各位大大 : 小弟最近使用Runtime呼叫bat檔去執行另一支JAVA程式 : 然後主程式要等這支程式跑完才繼續執行 : 但卻一直都等不到他結束...程式就卡在那 : 以下是我呼叫的程式碼 : try{ : Runtime rt = Runtime.getRuntime(); : Process ps = rt.exec("C:/Users/admin/JAVA/Login.bat"); : ps.waitFor(); : } : catch(Exception e){e.printStackTrace();} : 因為另一支JAVA執行完會產生一個檔案 : 若沒有ps.waitFor();那個檔案還是沒有產生 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Edit: 抱歉剛剛沒注意到這句, 我想你遇到的狀況可能跟我下面所提的是不同的問題... : 可是手動執行那個bat檔就可以正常執行 : 請問有可能是什麼原因嗎? google "java process hang" 可以看到蠻多相同的情形, 這應該是一個 java 的 bug, 當 Proecess 輸出了許多訊息(Standard output & Error), 而你沒有去 read 出來時,就很可能會卡在那。 解決辦法當然就是把兩個 input stream 的資料通通獨出來, 我的作法是額外包出一個物件來負責這件事。 code: https://gist.github.com/744712 -- T$,修好它吧。 ⊙─ ─⊙▂⊙ 碰到問題,用SoftICE就對了! █◤ Lee T$ Chen MYTHBUGTERS by dajidali -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.78.231 ※ 編輯: tkcn 來自: 140.114.78.231 (12/17 17:45)

12/17 23:59, , 1F
感謝!!!!! 問題解決了 真感動Q_Q
12/17 23:59, 1F

12/18 01:05, , 2F
@@a 真的是這問題喔?
12/18 01:05, 2F

12/18 22:54, , 3F
嗯 @@
12/18 22:54, 3F
文章代碼(AID): #1D2p1BPB (java)
文章代碼(AID): #1D2p1BPB (java)