Ich möchte eine Java-Prozessausgabe in Richtung der Standardausgabe des übergeordneten Java-Prozesses umleiten.ProcessBuilder auf Standardausgabe umgeleitet
die Process-Klasse verwenden wie folgt:
public static void main(String[] args) {
ProcessBuilder processBuilder = new ProcessBuilder("cmd");
processBuilder.directory(new File("C:"));
processBuilder.redirectErrorStream(true); // redirect error stream to output stream
processBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT);
}
Ich hätte erwartet, dass die Ausgaben von "cmd", die wie sind:
Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. Tous droits réservés.
werden in der DOS-Konsole angezeigt, die zum Ausführen des Java-Programms verwendet wird. In der DOS-Konsole wird nichts angezeigt.
In den anderen Diskussionsthreads sah ich Lösungen mit einer BufferedReader-Klasse: aber hier möchte ich die Ausgaben des Prozesses direkt in der Standardausgabe angezeigt werden, ohne BufferedReader oder "während des Lesens Schleife". Ist es möglich?
Danke.
Blick auf die API für die System-Klasse für die Methoden, die Sie benötigen: 'Abstecken (...)', 'SetIn (...)', 'setErr (...) '. –
Das sollte funktionieren. Ich verstehe nicht, warum das nicht so wäre. – Qix