Отсутствует вывод командной строки из процесса Java в Windows - PullRequest
2 голосов
/ 03 апреля 2012

У меня есть простой код, который использует 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.

1 Ответ

0 голосов
/ 03 апреля 2012

Вне кода процесса не будет выводиться на тот же вывод командной строки, если вы явно не настроите его для этого. Кроме того, как правило, лучше использовать библиотеку журналов, например, log4j, чем выполнять операторы println.

...