Можно ли запускать терминальные графические приложения через java-ProcessBuilder

Можно ли запускать подпроцессы, такие как Far/MidnightCommander (или другое терминальное приложение с ncurses/graphical-interface) из Java-приложения с помощью ProcessBuilder или каким-либо другим способом?

Стандартные примеры с ProcessBuilder отлично работают с чем-то простым, например, ping

new ProcessBuilder().command("ping -n 4 google.com").start(); // :)

, но совсем не работал с далеким

new ProcessBuilder().command("far").start(); // :(

1 ответ

Решение

Да.

Этим приложениям для работы необходим доступ к оконечному устройству. Если вы запустили java-программу с терминала, вы можете использовать тот же терминал, позволив новому процессу унаследовать его:

new ProcessBuilder().inheritIO().command("top").start(); // :)

В противном случае вам нужно запустить новый эмулятор терминала для запуска программы.

new ProcessBuilder().command("xterm", "top").start(); // :)
Другие вопросы по тегам