EDIT: if things still aren't working, then the next step is to see whether the problem is that convert isn't being found. Let's just run convert on its own without any arguments and see if it spits out its usage message to standard output. Run the following:
public class test1 {
public static void main(String argv[]) throws IOException, InterruptedException {
ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/c", "convert");
pb.redirectErrorStream(true);
Process p = pb.start();
StreamGobbler g = new StreamGobbler(p.getInputStream(), "OUT");
g.start();
p.waitFor();
}
}
Use the StreamGobbler class here. Does this print out convert's usage method, with each line prefixed with OUT>?