如何在Java中捕获shell命令的退出状态?
发布时间:2020-12-15 02:56:09 所属栏目:Java 来源:网络整理
导读:我正在为我的CSVreader创建一个Junit测试文件.我正在阅读CSV文件的内容并将内容写入另一个文件.我想使用diff实用程序比较它们,我想使用diff的退出状态来知道内容是否相同.一般是$?给出退出状态,但我不知道如何捕获它并在我的代码中使用它.谁可以在这方面帮
我正在为我的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; 甚至其他建议也很受欢:) 解决方法
你在找
Process#exitValue
String command = "diff "+mp.get("directory")+"/"+fileName+" "+mp.get("outdir")+"/"+fileName; Process p = Runtime.getRuntime().exec(command); p.waitFor(); int exitStatus = p.exitValue(); 不要忘记,你应该读取InputStream的内容,即使你不在乎,有些进程会在读取输出缓冲区之前阻塞(不完成)… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容