I'm creating a Junit test file for my CSVreader. I'm reading the contents of CSV files and writing the contents into another file. I want to compare them using diff utility and I want to use the exit status of diff to know whether the contents are same or not. Generally $? gives the exit status but I don't know how to capture it and use it in my code. Can anyone help me in this regard?
This is how my code looks
boolean hasSameContents = false;
command="diff "+mp.get("directory")+"/"+fileName+" "+mp.get("outdir")+"/"+fileName;
p= Runtime.getRuntime().exec(command);
p.waitFor();
After this I want to get the exit status and use it in a if condition like this
if(exit_status==0)
hasSameContents = true;
else
hasSameContents = false;
Even alternative suggestions appreciated. :)
You're looking for 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();
Don't forget, you should read the contents of the InputStream
even if you don't care, some processes will choke (not finish) until the output buffer has been read...
You can try using ProcessBuilder
class to create a Process
object, whose exitValue()
should help you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With