>>848なのですが
waitFor()の中でexitValue()を呼び出していて
exitValue()内でgetExitCodeProcess()の戻り値がSTILL_ACTIVE=259の場合に
この例外が出るようです。
259を返すexeのほうが悪いということでどうにもならないものでしょうか?

public int exitValue() {
int exitCode = getExitCodeProcess(handle);
if (exitCode == STILL_ACTIVE)
throw new IllegalThreadStateException("process has not exited");
return exitCode;
}