Alex Rivera | Logout

How to capture the exit status of a shell command in Java?

Asked 2012-10-15T09:23:04.040
14

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. :)

Edit
Report

1 Answer

3

Use method waitFor() of class Process. It returns an int, the return value of the process.

answered 2012-10-15T09:26:59.350

Your Answer