public void consumeProcessOutput(Appendable output, Appendable error)
:
Получает выходные данные и потоки ошибок из процесса и считывает их, чтобы предотвратить блокировку процесса из-за полного выходного буфера.Обработанные данные потока добавляются к прилагаемому объекту «Добавляемый».Для этого запускаются два потока, поэтому этот метод будет возвращен немедленно. Потоки не будут объединяться (), даже если вызывается waitFor ().Чтобы дождаться, пока выходные данные будут полностью использованы, вызовите функцию waitForProcessOutput ().
public void waitForProcessOutput()
Получает потоки вывода и ошибок из процесса и считывает ихчтобы предотвратить блокировку процесса из-за полного выходного буфера.Потоковые данные выбрасываются, но исключается блокировка из-за полного выходного буфера. Используйте этот метод, если вы не заботитесь о стандартном выводе или выводе ошибки и просто хотите, чтобы процесс выполнялся без вывода сообщений - используйте его осторожно, потому что, поскольку данные потока выбрасываются, может быть трудно отследитькогда что-то идет не так.Для этого запускаются два потока, но join () ed, поэтому мы ждем.Как следует из названия waitFor ..., мы также ждем, пока не закончим.Наконец, потоки вывода и ошибок закрываются.
public void waitForProcessOutput(Appendable output, Appendable error)
Получает потоки вывода и ошибок из процесса и считывает их, чтобы предотвратить блокирование процесса из-зав полный выходной буфер.Обработанные данные потока добавляются к прилагаемому объекту «Добавляемый».Для этого запускаются два потока, но join () ed, поэтому мы ждем.Как следует из названия waitFor ..., мы также ждем, пока не закончим.Наконец, потоки ввода, вывода и ошибок закрываются.
, поэтому вместо
sproc.consumeProcessOutput(sout, serr)
sproc.waitForProcessOutput()
вызовите
sproc.waitForProcessOutput(sout, serr)