2016-05-19 1 views
0

Ich möchte so etwas wie die Apache Xampp Systemsteuerung erstellen. Ich möchte meine eigene Systemsteuerung erstellen, die meinen Server startet/stoppt.Senden eines Befehlszeilenbefehls von JButton?

Ich benutze Eclipse GUI Builder und ich habe versucht, online nach Hilfe diesbezüglich zu suchen, konnte aber nichts finden. Kann mir jemand Hilfe anbieten?

Zum Beispiel, normalerweise, wenn ich meinen Server starte, würde ich zur Eingabeaufforderung gehen, in das Verzeichnis gehen und run.bat eingeben. Wenn ich den Server stoppe, müsste ich ctrl + c machen.

Wie erreiche ich dies, indem ich auf ein JButton (Start server) und ein anderes JButton (Stop server) klicke?

Es gibt nicht viel auf meiner Codierung, da es Standard Eclipse Swing GUI generierte Codes ist.

+0

mögliche Lösung: http: // Stackoverflow .com/questions/8496494/running-command-line-in-java –

+0

ProcessBulder wäre die bevorzugte Lösung, jede andere fragt nach einer Menge von Kochen Plating und mögliche Probleme – MadProgrammer

+0

Also wenn ich ein dynamisches Verzeichnis für run.bat habe, kann ich ein jtextfield für machen Benutzer, um das Verzeichnis zu betreten, wo run.bat existiert und dann auf das Textfeld hören? Nach dem Ausführen von run.bat aus diesem Textfeld Verzeichnis nach dem Klicken auf die Schaltfläche? – Nicky

Antwort

4

Es auf Ihrem O hängt für den Befehl int die Runtime.exec Methode, aber in einem normalen Fall können Sie versuchen, diese:

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

Danke! Kann ich ein Textfeld anhören, so dass der Pfad dynamisch sein kann? – Nicky