在java中运行外部程序

时间:2010-07-30 21:53:23

标签: java

如果我从java运行外部程序(批处理文件)那么,我需要做什么:

if (process.exitValue() == 0) {//means executed successfully ???

返回值不能成为其他值并且批量执行成功。

这是检查的唯一方法吗?

6 个答案:

答案 0 :(得分:1)

我对你的措辞感到有点困惑,但按照惯例,[exitValue()](http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Process.html#exitValue())会在成功执行后返回0。据我所知,这是唯一的检查方法。

修改

我想你可以使用[getErrorStream()](http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Process.html#getErrorStream()) - 我认为如果过程中没有错误,它将是空白的......

答案 1 :(得分:1)

here

中选择一个

答案 2 :(得分:0)

您可以阅读output stream(或错误信息流)并解释它

答案 3 :(得分:0)

批处理的退出代码将由该进程定义,但通常将0的退出代码定义为成功,非零值表示出错。在批处理文件中,您可以通过调用:

来设置返回代码
EXIT /B %ERROR_CODE%

%ERROR_CODE%是将作为退出代码返回的数字。

答案 4 :(得分:0)

在Linux上,您的程序可以返回您想要的任何状态。按照惯例,0意味着成功。

例如,如果执行shell脚本,则返回状态将是脚本中执行的最后一个命令的返回状态。

答案 5 :(得分:0)

在许多程序中,0表示成功,负数表示错误,正数表示警告。当然,这只是一个惯例,这完全取决于遵循的惯例。在大多数编程语言中,您可以为程序定义退出代码,这就是拾取的内容。

在Java System.exit(n)中 在C main中定义为int main(int argc,char * argv []),main的返回是从程序返回。