Heim > Java > javaLernprogramm > Wie kann ich die Ausgabe von Befehlszeilenprogrammen mit Javas Runtime.getRuntime() erfassen und drucken?

Wie kann ich die Ausgabe von Befehlszeilenprogrammen mit Javas Runtime.getRuntime() erfassen und drucken?

Patricia Arquette
Freigeben: 2024-12-21 07:38:09
Original
983 Leute haben es durchsucht

How Can I Capture and Print Output from Command Line Programs Using Java's Runtime.getRuntime()?

Erhalten der Ausgabe von Befehlszeilenprogrammen mit Java Runtime.getRuntime()

Wenn Sie Javas Runtime.getRuntime() verwenden, um Eingabeaufforderungsbefehle aus Ihrem Programm auszuführen, könnten Sie dies tun auf die Schwierigkeit stoßen, die Ausgabe zu erfassen, die der Befehl zurückgibt. Lassen Sie uns das Problem untersuchen und herausfinden, wie Sie die gewünschte Ausgabe mit einer robusten Methode abrufen und drucken können.

In Ihrem Ansatz würde der Versuch, den Process-Objektproc mit System.out.println() zu drucken, keine aussagekräftigen Ergebnisse liefern Ergebnisse. Stattdessen müssen Sie den InputStream vom ausgeführten Befehl an einen BufferedReader weiterleiten, um auf die Ausgabe zuzugreifen und diese anschließend zu drucken.

Hier ist ein aktualisierter und voll funktionsfähiger Codeausschnitt:

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 the output from the command
System.out.println("Here is the standard output of the command:\n");
String s = null;
while ((s = stdInput.readLine()) != null) {
    System.out.println(s);
}

// Read any errors from the attempted command
System.out.println("Here is the standard error of the command (if any):\n");
while ((s = stdError.readLine()) != null) {
    System.out.println(s);
}
Nach dem Login kopieren

Durch die Verwendung von BufferedReader können Sie die Ausgabezeilen iterativ lesen und in Ihrem Programm anzeigen. Dieser Ansatz bietet eine saubere und effiziente Möglichkeit, sowohl die Standardausgabe als auch potenzielle Fehler des ausgeführten Befehls zu verarbeiten.

Eine umfassende Dokumentation und Einblicke in zusätzliche Optionen wie ProcessBuilder finden Sie im offiziellen Javadoc für Runtime.getRuntime() bietet erweiterte Kontrolle über die Prozessabwicklung.

Das obige ist der detaillierte Inhalt vonWie kann ich die Ausgabe von Befehlszeilenprogrammen mit Javas Runtime.getRuntime() erfassen und drucken?. 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