Then the start() method is blocking. Try immediately reading the stdin and stderr streams after invocing start(). From the java.lang.Process API documentation:
By default, the created subprocess does not have its own terminal or console. All its standard I/O (i.e. stdin, stdout, stderr) operations will be redirected to the parent process, where they can be accessed via the streams obtained using the methods getOutputStream(), getInputStream(), and getErrorStream(). The parent process uses these streams to feed input to and get output from the subprocess. Because some native platforms only provide limited buffer size for standard input and output streams, failure to promptly write the input stream or read the output stream of the subprocess may cause the subprocess to block, or even deadlock.
Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.