Re: [問題] 使用runtime呼叫bat檔
※ 引述《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
12/17 23:59, 1F
→
12/18 01:05, , 2F
12/18 01:05, 2F
→
12/18 22:54, , 3F
12/18 22:54, 3F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):