You should be consuming the process' error stream as well as its input stream. First, to prevent its buffer from filling, and second 'cause it might tell you something useful.
I normally do it in a new
Thread, and have a class specifically for consuming the input and error streams. See
my post in the other thread.
p.s. This is all based on the very good JavaWorld article called
When Runtime.exe() won't. If you haven't read it yet you should.