Heim >Java >javaLernprogramm >Wie kann ich Shell-Befehle in einem Java-Programm ausführen?
Shell-Befehle aus Java ausführen: Eine detaillierte Anleitung
In Java können Sie Systembefehle mit der Methode Runtime.exec() ausführen. Es kann jedoch eine Herausforderung sein, zu verstehen, wie Befehle ausgeführt werden.
Eingabeaufforderung öffnen
Der von Ihnen angegebene Code öffnet die Eingabeaufforderung korrekt:
Runtime rt = Runtime.getRuntime(); rt.exec(new String[]{"cmd.exe","/c","start"});
Dies öffnet ein neues Eingabeaufforderungsfenster.
Ausführen Befehle
Um einen Befehl innerhalb der Eingabeaufforderung auszuführen, können Sie den Befehl vor der Ausführung an die Befehlszeile anhängen. Um beispielsweise das Verzeichnis zu wechseln und einen bestimmten Befehl auszuführen:
Verzeichnis ändern
// Change directory and run "dir" command ProcessBuilder builder = new ProcessBuilder( "cmd.exe", "/c", "cd \"C:\Program Files\Flowella\" && dir");
Die obige Befehlszeile weist cmd.exe an, die folgenden Befehle nacheinander auszuführen :
Andere Befehle ausführen
Sie können jeden Befehl ausführen, indem Sie die Befehlszeile nach „cd“ ändern. Um beispielsweise den Befehl „ping“ auszuführen:
ProcessBuilder builder = new ProcessBuilder( "cmd.exe", "/c", "cd \"C:\Program Files\Flowella\" && ping www.google.com");
Verwenden eines ProcessBuilder
Die ProcessBuilder-Klasse bietet eine vielseitigere Möglichkeit, Befehle auszuführen. Es ermöglicht Ihnen:
Im obigen Beispiel leiten wir den Standardfehler des Prozesses in seine Standardausgabe um, um das Lesen zu vereinfachen Ausgabe.
Beispielverwendung
Der folgende Code führt den Befehl „dir“ im angegebenen Verzeichnis aus:
import java.io.*; public class CmdCommand { public static void main(String[] args) throws Exception { String dir = "C:\Program Files\Flowella"; ProcessBuilder builder = new ProcessBuilder( "cmd.exe", "/c", "cd \"" + dir + "\" && dir"); builder.redirectErrorStream(true); Process p = builder.start(); BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while (true) { line = r.readLine(); if (line == null) { break; } System.out.println(line); } } }
Dieser Code ändert die aktuelle Verzeichnis nach „C:Program FilesFlowella“ und führt den Befehl „dir“ aus, um die Ausgabe auf der Konsole zu drucken.
Das obige ist der detaillierte Inhalt vonWie kann ich Shell-Befehle in einem Java-Programm ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!