2016-05-19 3 views
0

Я хотел бы создать что-то вроде панели управления apache xampp. Я хотел бы создать свою собственную панель управления, которая запускает/останавливает мой сервер.Отправка команды командной строки из JButton?

Я использую Eclipse GUI Builder, и я попытался найти в Интернете информацию об этом, но ничего не смог найти. Может ли кто-нибудь помочь мне?

Например, обычно, когда я запускаю свой сервер, я бы пошел в командной строке, перейдите в каталог и введите run.bat. При остановке сервера мне придется делать ctrl + c.

Как достичь этого, щелкнув JButton (запуск сервера) и другой JButton (Stop server)?

Нет ничего особенного в моем кодировании, поскольку по умолчанию Eclipse Swing генерирует графические коды.

+0

Возможное решение: HTTP: // StackOverflow .com/questions/8496494/running-command-line-in-java –

+0

ProcessBulder будет предпочтительным решением, любой другой просит много кипения и потенциальных проблем – MadProgrammer

+0

Итак, если у меня есть динамический каталог для run.bat, я могу создать jtextfield для пользователь должен войти в каталог, где существует run.bat, а затем прослушать текстовое поле? После чего запускается run.bat из этого каталога текстового поля после нажатия кнопки? – Nicky

ответ

4

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

JButton startServer = new JButton(); 
    startServer.addActionListener(new ActionListener() { 

     @Override 
     public void actionPerformed(ActionEvent e) { 
      Runtime runtime = Runtime.getRuntime(); 
      try { 
       // Here exec your bat file 
       runtime.exec("Path_To_Your_Bat_File"); 
      } catch (IOException e1) { 
       e1.printStackTrace(); 
      } 
     } 
    }); 

    JButton stopServer = new JButton(); 
    stopServer.addActionListener(new ActionListener() { 

     @Override 
     public void actionPerformed(ActionEvent e) { 
      Runtime runtime = Runtime.getRuntime(); 
      try { 
       //Here get your process id and kill it 
       runtime.exec("Get_Process & Kill"); 
      } catch (IOException e1) { 
       e1.printStackTrace(); 
      } 
     } 
    }); 
+0

Спасибо! Могу ли я слушать текстовое поле, чтобы путь мог быть динамическим? – Nicky

Смежные вопросы