У меня есть следующий код Java, чтобы запустить ProcessBuilder, открыть OutputStream, заставить процесс записать строку в OutputStream, а затем закрыть OutputStream.Все это зависает бесконечно, когда я пытаюсь закрыть OutputStream.Это происходит только в Windows, но не в Mac или Linux.
Некоторые из связанных вопросов, кажется, близки к той же проблеме, что и у меня, но я не смог выяснить, как применитьответы на мою проблему, так как я относительный новичок с Java.Вот кодВы можете видеть, что я вставил много операторов println, чтобы попытаться изолировать проблему.
System.out.println("GenMic trying to get the input file now");
System.out.flush();
OutputStream out = child.getOutputStream();
try {
System.out.println("GenMic getting ready to write the input file to out");
System.out.flush();
out.write(intext.getBytes()); // intext is a string previously created
System.out.println("GenMic finished writing to out");
System.out.flush();
out.close();
System.out.println("GenMic closed OutputStream");
System.out.flush();
} catch (IOException iox) {
System.out.println("GenMic caught IOException 2");
System.out.flush();
String detailedMessage = iox.getMessage();
System.out.println("Exception: " + detailedMessage);
System.out.flush();
throw new RuntimeException(iox);
}
И вот вывод, когда этот блок выполняется:
GenMic пытается получитьвходной файл теперь
GenMic готовится записать входной файл в
GenMic завершил запись в