После исследования я заметил, что «правильный» способ использования Java-процесса ProcessBuilder состоит в том, чтобы создать еще два потока, чтобы управлять gobbling stdout/stderr только что созданного процесса, чтобы он не зависал, как есть показано здесь: javaworld articleПравильное использование ProcessBuilder
Но это оставило меня задаваться вопросом о 2 вопросы- 1.) Почему именно являются отдельными процессами необходимы вместо того, чтобы родительский процесс сожрать стандартный вывод, а затем последовательно в поток ошибок?
2.) Кроме того, если бы вы перенаправляли потоки на оба выхода, то было бы приемлемо, чтобы родительский процесс проглотил поток stdout, а затем не нужно беспокоиться о взаимоблокировках?