2011-03-31 76 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。它将帮助您从批处理文件获取输出,并设置超时,甚至创建命令行。