Как запустить терминал UNIX из Java и отправить ему команды? - PullRequest
2 голосов
/ 28 сентября 2011

Относительно темы, код ниже


    Process proc = null;
    try {
        String[] cmdss= {"gnome-terminal"};


        proc = Runtime.getRuntime().exec(cmdss, null, wd);
    } catch (IOException e) {
        e.printStackTrace();
    }

Запускает терминал из Ubuntu.

Как мне вводить команды в терминал после запуска termnal?

Например: запустить терминал и запустить команду, такую ​​как "ls" и т. Д.

1 Ответ

2 голосов
/ 28 сентября 2011

Вы можете дать gnome-terminal некоторым параметрам в командной строке то, что она должна выполнять.

gnome-terminal -e /my/fortran/program

Опция -x дает вам примерно такое же преимущество, но вы можете разделить командную строку на отдельные слова.

И -e, и -x запускают программу с необязательными аргументами при подключении стандартного ввода и вывода программы к терминалу.Таким образом, пользователь может правильно взаимодействовать с терминалом.

Пример:

gnome-terminal -x bash -c "ls; echo '<enter>'; read"

Это откроет терминал и запустит «программу» bash.bash получит два аргумента: -c и ls; echo ....; read.Опция -c выполняет синтаксический анализ bash и выполняет следующий аргумент.Это вызовет ls, затем echo ..., затем read, который ожидает ключ возврата.

В Java вы должны соответствующим образом разделить аргументы в массив, например:

String cmd[] = {"gnome-terminal", "-x", "bash", "-c", "ls; echo '<enter>'; read" };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...