Heim >Java >javaLernprogramm >Wie kann ich Shell-Befehle in einem Java-Programm ausführen?

Wie kann ich Shell-Befehle in einem Java-Programm ausführen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-18 10:50:11617Durchsuche

How Can I Run Shell Commands from within a Java Program?

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 :

  1. Ändern Sie das aktuelle Verzeichnis in „C:ProgrammeFlowella“
  2. Führen Sie aus „dir“-Befehl in diesem Verzeichnis

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:

  • Die Standardfehler- und Ausgabeströme des Prozesses umzuleiten
  • Umgebungsvariablen festzulegen
  • Das Arbeitsverzeichnis festzulegen

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn