如果我从java运行外部程序(批处理文件)那么,我需要做什么:
if (process.exitValue() == 0) {//means executed successfully ???
返回值不能成为其他值并且批量执行成功。
这是检查的唯一方法吗?
答案 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的返回是从程序返回。