У меня есть инструмент командной строки, который запрашивает сервер и печатает состояние отложенных заданий для запуска.Это может занять до 30 секунд.Мне нужно вызвать этот инструмент из Java, и я хочу показать его вывод в текстовой области на моем графическом интерфейсе.Например, предположим, что в Windows команда имеет значение «dir».
Process.getRuntime().exec("cmd /c dir");
блокирует до тех пор, пока команда не завершит ее выполнение, поэтому я подумал, что будет лучше показать команду, выполняющуюся в терминале, затемпрочитайте вывод и покажите его в моей текстовой области для дальнейшего использования.Однако консоль скрыта, и у пользователя создается впечатление, что приложение перестало работать.После долгих исследований я попытался:
cmd /k dir
- работает в фоновом режиме и может читать выходные данные, но приложение зависает, так как для этого требуется ключ / k, чтобы окно оставалось открытым, но я не вижучтобы закрыть его.
cmd /c start dir
- открывается в новом видимом терминале, работает, но не закрывается.Закрытие вручную не позволяет мне прочитать вывод
cmd /k start dir
- тот же результат, что и выше
Мой вопрос: как я могу запустить команду для запуска, увидеть ее выполнение и доступего вывод?