Допустим, у меня есть программа командной строки.Я хочу иметь возможность общаться с ним из моей Java-программы.Я попробовал следующий метод:
Process p = new ProcessBuilder(pathToProgramC).start();
in = new Scanner(new InputStreamReader(p.getInputStream()));
out = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
Я хотел использовать вход и выход для чтения из выходных данных программы и записи для ее ввода.
Чтобы прояснить мою точную проблему, я написал две минимальные программы, одну на Java и одну на C, чье поведение с точки зрения терминала идентично.Тем не менее, приведенный выше код прекрасно работает при взаимодействии с java-версией, но бесконечно ждет при попытке установить связь с C-версией.Поскольку две программы запускаются одинаково из командной строки, как это может быть так?