Откройте терминал / подсказку и передайте команду (ping)

1

Мне нужна помощь с моим настольным приложением Java.

У меня есть кнопка, которая вызывает (это мое намерение) терминал (Linux) или prompt/cmd (Windows) и передает некоторую команду (я пытаюсь использовать команду ping).

Я просто знаю, как открыть терминал, но я не могу передать команду. Как я это делаю?

Благодарю.

Отредактировано:

Мой код в это время:

       Runtime rt = Runtime.getRuntime();
       String sistemaOperacional = System.getProperty("os.name").toLowerCase();
            String ip = "192.168.7.1";
            String comando  = "ping -c 100 "+ip;

            if (sistemaOperacional.contains("linux")){
                try {
                    rt.exec("gnome-terminal ");
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            else if (sistemaOperacional.contains("win")){

                try {
                    rt.exec("cmd.exe /c start command");
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }
            else{
                JOptionPane.showMessageDialog(null, "Não foi possível identificar o sistema operacional!");
            }
  • 0
    Можете ли вы отредактировать свой вопрос, включив в него код, запускающий терминал или командную строку?
  • 0
    Ред. Это вызывает терминал, но без команды ...
Теги:
terminal
cmd
prompt

1 ответ

0
Лучший ответ

Вы должны найти документацию для своего терминала для опции, которая устанавливает команду, которая будет запущена при запуске терминала. Например, для xterm это -e, поэтому для запуска команды из Java-кода в xterm вы бы сделали, например:

Runtime.getRuntime().exec("xterm -e ls;read"); // read is here just for the terminal not to close right away

Чтобы открыть терминал, запустите ls и дождитесь, пока пользователь нажимает клавишу ввода, пока терминал не закроется.

Но так как вы не должны полагаться на свой пользователь, чтобы иметь определенный терминал по умолчанию, вам лучше использовать системный по умолчанию, а -e является стандартным параметром для многих терминалов (например, gnome-terminal использует его):

Runtime.getRuntime().exec("x-terminal-emulator -e ls;read");
  • 0
    В том месте, куда вы положили «читать», я передаю содержимое моего var?
  • 0
    Вы можете поставить любую команду после -e . Поскольку команда - это просто строка, вы можете составить эту команду в своем коде Java, используя ваши переменные, да. Я поставил read только для того, чтобы терминал не закрывался сразу после появления. Вероятно, есть лучший способ сохранить терминал с открытым аргументом -e (если вам это, конечно, нужно), но я его не нашел.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню