Я пытался использовать ProcessBuilder, чтобы выяснить, как отправить ввод командной строки в и прочитать ответ в командной строке. По какой-то причине запись в командную строку через OutputStream, похоже, вообще не работает. Использование ProcessBuilder.command() работает, однако мне нужен способ непрерывно получать входные данные и отправлять выходные данные без необходимости повторного использования метода ProcessBuilder.start() для повторного запуска исполняемого файла каждый раз с разными команды.
ProcessBuilder p = new ProcessBuilder(PATH_TO_EXECUTABLE);
Process process = p.start();
String s = "help";
process.getOutputStream().write(s.getBytes());
//gets blocked, meaning no readable output
String b = new String(process.getInputStream().readNBytes(1));
System.out.println(b);
Подробнее здесь: https://stackoverflow.com/questions/790 ... mmand-line