2011-03-31 55 views

回答

3

Runtime.exec()和ProcessBuilder.start()都返回一個Process對象。

因此,您可以使用Process.getExitValue()。也就是說,我不知道shell的退出值是否與腳本相同。

+0

我試過了。但是我在線程「main」java.lang.IllegalThreadStateException中得到以下exceptin.Exception:進程沒有退出 \t at java.lang.ProcessImpl.exitValue(Native Method) \t at com.mt.test.TestClass2。主要(TestClass2.java:13) – Apps 2011-03-31 14:25:09

+0

我認爲這個線程應該解決我的問題http://stackoverflow.com/questions/2448402/run-bat-file-in-java-and-wait-2 – Apps 2011-03-31 14:28:04

+0

檢查出http:/ /download.oracle.com/javase/1.5.0/docs/api/java/lang/Process.html具體來說,方法waitFor()。 – DwB 2011-03-31 14:31:07

0

使用java.lang.ProcessBuilder創建對批處理文件的調用。 Process對象將允許您監視批處理文件中的輸出和退出代碼。非零退出代碼通常表示失敗。

+0

我認爲這個線程應該解決我的問題http://stackoverflow.com/questions/2448402/run-bat-file-in-java-and-wait-2 – Apps 2011-04-01 03:23:27

2

您應該查看When Runtime.exec() won't

我強烈推薦它。它可能會回答你的下一個4-5個問題。

+0

很棒....這是非常有用的鏈接。 – Apps 2011-04-01 03:24:15

0

你應該真的檢查Commons Exec。它將幫助您從批處理文件獲取輸出,並設置超時,甚至創建命令行。