Well, your program doesn't work for me either :)
a quick google and a reading of
When Runtime.exec() won't reveals its a combination of common pitfalls and limitations -- essentially, by the time waitFor returns, the buffers are probably empty.
A modification of GoodWindowsExec.java works without a hitch