У меня есть простой код, который использует Java Apache Exec классы для запуска внешних процессов.
Executor ex = new DefaultExecutor();
ex.setStreamHandler(new PumpStreamHandler(System.out, System.out, System.in));
CommandLine cl = new CommandLine(
"C:\\program.exe");
ex.execute(cl);
}
Для некоторых программ командной строки это работает, как и ожидалось, и выводит весь вывод программы в поток «out», принимая мой собственный текст в поток «in». Однако для других программ вывод процесса выполняется вручную из командной строки, но я ничего не получаю при запуске через процесс Java.
Я хотел бы в конце концов написать в stdin, извлечь и проанализировать stdout в самом коде.
Если есть причина, по которой я не знаю, почему некоторые программы выводят текст в командной строке, но когда я запускаю их как процессы Java, я ничего не получаю через потоки?
Это происходит в Windows.