我正在为CSVreader创建一个Junit测试文件。我正在读取CSV文件的内容,并将内容写入另一个文件。我想使用diff实用程序来比较它们,我想使用diff的退出状态来了解内容是否相同。通常是$?给出退出状态,但我不知道如何捕获它并在我的代码中使用它。有人可以在这方面帮助我吗?
这就是我的代码的样子
boolean hasSameContents = false;
command="diff "+mp.get("directory")+"/"+fileName+" "+mp.get("outdir")+"/"+fileName;
p= Runtime.getRuntime().exec(command);
p.waitFor();
在此之后,我想获取退出状态并在这样的if条件下使用它
if(exit_status==0)
hasSameContents = true;
else
hasSameContents = false;
甚至其他建议也表示赞赏。 :)
最佳答案
String command = "diff "+mp.get("directory")+"/"+fileName+" "+mp.get("outdir")+"/"+fileName;
Process p = Runtime.getRuntime().exec(command);
p.waitFor();
int exitStatus = p.exitValue();
别忘了,即使您不在乎,也应该阅读
InputStream
的内容,某些进程将阻塞(未完成),直到读取了输出缓冲区为止。关于java - 如何捕获Java中Shell命令的退出状态?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12892665/