由于您的程序会产生大量输出,因此我的假设是它试图写入标准输出(在Linux下是管道,对于Windows不知道)会卡住。
试试这个:
final byte[] devnull = new byte[1024];
final ProcessBuilder builder = new ProcessBuilder("C:\\test.exe", "param1", "param2")
.redirectErrorStream(true);
final Process p = builder.start();
final InputStream stdout = process.getInputStream();
// Purge stdout
while (stdout.read[devnull] != -1);
// Grab the process' exit code here