Befehlszeilenausgabe in Java extrahieren
Die Runtime-Klasse von Java bietet die Möglichkeit, Befehlszeilenprogramme auszuführen. Allerdings kann es eine schwierige Aufgabe sein, die von diesen Befehlen generierte Ausgabe zu erhalten. In diesem Artikel wird dieses Problem behoben, indem erläutert wird, wie die Ausgabe eines Befehlszeilenprogramms mithilfe der Runtime-Klasse extrahiert wird.
Im bereitgestellten Code zeigt die Fehlermeldung, dass der Ausgabestream nicht ordnungsgemäß gelesen wird. Um dies zu beheben, demonstriert der folgende Code eine robuste Methode:
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); }
Dieser Code nutzt die Runtime-Klasse, um den Befehl auszuführen, und öffnet Reader sowohl für die Standardeingabe als auch für die Fehlerströme des Prozesses. Anschließend werden die Ausgabe- und Fehlerzeilen durchlaufen und auf der Konsole ausgegeben.
Ausführlichere Details und erweiterte Optionen finden Sie in der Java-Dokumentation zu ProcessBuilder: https://docs.oracle.com/javase/ 7/docs/api/java/lang/ProcessBuilder.html
Das obige ist der detaillierte Inhalt vonWie kann man Befehlszeilenausgaben in Java effizient erfassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!