Heim > Java > javaLernprogramm > Wie kann ich die Befehlszeilenausgabe mit Javas Runtime.getRuntime() abrufen?

Wie kann ich die Befehlszeilenausgabe mit Javas Runtime.getRuntime() abrufen?

Patricia Arquette
Freigeben: 2024-12-31 10:10:14
Original
275 Leute haben es durchsucht

How Can I Retrieve Command Line Output Using Java's Runtime.getRuntime()?

Abrufen der Befehlszeilenausgabe mit Javas Runtime.getRuntime()

Um die Leistungsfähigkeit von Befehlszeilendienstprogrammen in Java zu nutzen, verwenden Programmierer häufig Runtime .getRuntime(). Während dieser Ansatz die mühelose Ausführung externer Programme ermöglicht, kann die Erfassung ihrer Ausgabe verwirrend sein. In diesem Artikel werden die Feinheiten des Abrufens von Befehlszeilenausgaben mit Runtime.getRuntime() erläutert.

Betrachten Sie zunächst dieses vereinfachte Beispiel:

Runtime rt = Runtime.getRuntime();
String[] commands = {"system.exe", "-send", argument};
Process proc = rt.exec(commands);
Nach dem Login kopieren

Standardmäßig ist Runtime.getRuntime().exec () gibt ein Process-Objekt zurück, das das ausgeführte Programm darstellt. Die vom Programm generierte Ausgabe bleibt jedoch über das Process-Objekt selbst nicht zugänglich.

Um die Ausgabe abzurufen, muss man sich mit den InputStreams befassen, die mit dem Process-Objekt verknüpft sind. Es sind zwei InputStreams zu berücksichtigen:

  • proc.getInputStream(): Dieser Stream bietet Zugriff auf die Standardausgabe des ausgeführten Programms.
  • proc.getErrorStream(): Dieser Stream erfasst alle Fehlermeldungen oder Warnungen, die von generiert werden Programm.

Um die Standardausgabe zu lesen, verwenden Sie ein BufferedReader-Objekt:

BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));
Nach dem Login kopieren

Über stdInput können wir die Ausgabe Zeile für Zeile mit der Methode readLine() abrufen.

while ((s = stdInput.readLine()) != null) {
    System.out.println(s);
}
Nach dem Login kopieren

Um etwaige Fehler zu erfassen, folgen Sie einem ähnlichen Ansatz mit proc.getErrorStream().

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

while ((s = stdError.readLine()) != null) {
    System.out.println(s);
}
Nach dem Login kopieren

Durch die Einbindung dieser Streams in Ihren Code können Sie effektiv die Ausgabe von Befehlszeilenprogrammen abrufen, die über Runtime.getRuntime() ausgeführt werden.

Das obige ist der detaillierte Inhalt vonWie kann ich die Befehlszeilenausgabe mit Javas Runtime.getRuntime() abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage