Heim >Java >javaLernprogramm >Wie erfasst man die Befehlszeilenausgabe mit Javas Runtime.getRuntime()?

Wie erfasst man die Befehlszeilenausgabe mit Javas Runtime.getRuntime()?

DDD
DDDOriginal
2024-12-25 05:28:16610Durchsuche

How to Capture Command Line Output Using Java's Runtime.getRuntime()?

Java Runtime.getRuntime(): Ausgabe aus ausgeführten Befehlszeilenprogrammen extrahieren

Problem:

Beim Ausführen von Befehlszeilenprogrammen mit Runtime.getRuntime() ist die von den Befehlen zurückgegebene Ausgabe nicht ohne weiteres möglich für das Java-Programm verfügbar. Dieses Problem tritt auf, wenn versucht wird, eine bestimmte Ausgabe abzurufen, was eine weitere Verarbeitung der zurückgegebenen Werte erfordert.

Lösung:

Um die Ausgabe von einem ausgeführten Befehl zu erhalten, muss der Folgende Schritte sind erforderlich:

  1. Erstellen Sie ein Runtime-Objekt:Beschaffen Sie sich eine Runtime-Instanz mit Runtime.getRuntime().
  2. Erstellen Sie das Befehlsarray: Definieren Sie ein Array von Zeichenfolgen, die den Befehl darstellen, den Sie ausführen möchten, einschließlich aller erforderlichen Argumente.
  3. Führen Sie den Befehl aus: Nutzen Sie die exec-Methode des Runtime-Objekts, um die Ausführung des Befehls zu initiieren. Diese Methode gibt ein Process-Objekt zurück.
  4. Extrahieren Sie den Standardeingabestream: Erhalten Sie den InputStream, der die Standardeingabe des ausgeführten Befehls darstellt, mithilfe der getInputStream-Methode des Process-Objekts.
  5. Umschließen Sie den Eingabestream: Erstellen Sie einen BufferedReader, um den InputStream zum bequemen Lesen zu umschließen Ausgabe.
  6. Ausgabe lesen: Verwenden Sie eine While-Schleife, um iterativ Zeilen aus dem BufferedReader zu lesen und die Ergebnisse in einer String-Variablen zu speichern.
  7. Drucken oder verarbeiten die Ausgabe: Sobald alle Ausgaben gelesen wurden, können Sie die erhaltenen Daten ausdrucken oder anderweitig verarbeiten als erwünscht.

Zusätzliche Überlegungen:

  • Wenn der ausgeführte Befehl Fehler generiert, können Sie den Standardfehlerstrom auch mit getErrorStream abrufen und auf ähnliche Weise verarbeiten .
  • Konsultieren Sie die Javadoc-Dokumentation für umfassende Informationen und alternative Ansätze, wie z. B. die Verwendung ProcessBuilder.

Beispielcode:

Runtime rt = Runtime.getRuntime();
String[] commands = {"system.exe", "-get t"};
Process proc = rt.exec(commands);

BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream()));

// Read output and errors
System.out.println("Standard Output:");
String line;
while ((line = stdInput.readLine()) != null) {
    System.out.println(line);
}

System.out.println("Standard Error:");
while ((line = stdError.readLine()) != null) {
    System.out.println(line);
}

Indem Sie diese Schritte befolgen und den bereitgestellten Code implementieren, können Sie die Ausgabe der ausgeführten Befehlszeile effektiv abrufen Programme und nutzen Sie es in Ihrer Java-Anwendung.

Das obige ist der detaillierte Inhalt vonWie erfasst man die Befehlszeilenausgabe mit Javas Runtime.getRuntime()?. 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