Как считать написанный текст через exec

276
09 августа 2017, 18:35

Добрый вечер! Через Runtime.exec вызывается определенная Linux-программа, которая динамически отображает результат вот в таком виде (числа меняются с периодичностью 5-10 секунд):

Такое динамическое отображение добивается путем вставки текста в место для ввода текста. То есть текст вставляется в поле для ввода, а, при обновлении, стирается и вставляется снова. Тогда текст не "съезжает" вверх, а остается на одной строке.

Вопрос: каким образом можно считать этот текст любым методом (Scanner, System.in и т.д.)?

Answer 1

Runtime.exec возвращает вам объект класса Process. У этого объекта есть метод getOutputStream(), который и вернет вам искомый поток. Скорей всего вам придется обрабатывать команды для терминала, которые позволяют обновлять строку динамически.

Но лучше использовать ProcessBuilder, а не Runtime.exec. Этот класс позволяет детально описать как именно запустить процесс: в каком окружении, в какой момент и пр.

READ ALSO
IntelliJ IDEA показывает “характер”

IntelliJ IDEA показывает “характер”

Как-то пришлось перезагрузить зависший компВ итоге IntelliJ самостоятельно поменяла тему оформления и начала сыпать ошибками

302
Генерация токена для Apple Music на java

Генерация токена для Apple Music на java

При генерации токена получаю ошибку:

328
Структура maven проекта и git репозитория

Структура maven проекта и git репозитория

Я хочу создать многомодульный maven-проектОдин модуль - repository - для работы с БД (entity, dao)

424