В моей программе Java используется ProcessBuilder (с параметром redirectErrorStream установлено true) и имеет цикл, который запускает метод чтения входного потока процессов, который блокирует. Внешняя программа, которую я вызываю, останавливается, ожидая ввода и stdin. Теперь я хочу убить процесс. Разве это не выполняется (в отдельном потоке), вызывающим метод уничтожения процесса, и вызывает метод закрытия входного потока, чтобы остановить метод чтения от блокировки больше, так что мой начальный поток может закончиться его жизнью?Почему блок ввода java inputstream.close()?
По какой-то причине process.getInputStream().close()
блоки. Из JavaDoc я не понимаю, почему это может произойти. Кроме того, я не понимаю, почему javadoc говорит: «Метод close из InputStream ничего не делает». (link to javadoc) Может кто-нибудь объяснить это?
Спасибо :-)
Вы уверены, что этого не происходит из-за внешней программы, с которой вы работаете? – Geo