Heim >Java >javaLernprogramm >Wie behebt man Probleme bei der Ausgabeumleitung mithilfe der Java-Runtime?

Wie behebt man Probleme bei der Ausgabeumleitung mithilfe der Java-Runtime?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-24 08:07:021129Durchsuche

How to Address Output Redirection Issues Using Java's Runtime?

Beheben von Ausgabeumleitungsproblemen mit der exec()-Methode von Runtime

In Java ermöglicht die Verwendung von Runtime.getRuntime().exec() zum Ausführen eines Befehls die Erfassung der Prozesse Ausgabe- und Fehlerströme. In Fällen, in denen eine Ausgabeumleitung gewünscht ist, kann sich diese Methode allein jedoch als unwirksam erweisen.

Das Problem: Ausgabe wird nicht umgeleitet

Bei Verwendung von Runtime.getRuntime().exec() mit Befehlen, die Feature-Ausgabeumleitung, z. B. > , der Umleitungsvorgang schlägt möglicherweise fehl. Die Zieldatei wird möglicherweise nicht erstellt und der Ausgabestream bleibt unumgeleitet.

Die Lösung: Einsatz von ProcessBuilder

Um die Ausgabe erfolgreich umzuleiten, sollten Sie stattdessen ProcessBuilder verwenden. Diese Klasse bietet einen detaillierteren Ansatz für die Prozesserstellung und ermöglicht die Spezifikation der Ausgabe- und Fehlerstromumleitung.

So verwenden Sie ProcessBuilder für die Ausgabeumleitung:

<code class="java">ProcessBuilder builder = new ProcessBuilder("sh", "somescript.sh");
builder.redirectOutput(new File("out.txt"));
builder.redirectError(new File("out.txt"));
Process p = builder.start(); // may throw IOException</code>

Durch die Verwendung von ProcessBuilder können Sie kann sowohl die Standardausgabe als auch die Standardfehlerströme in die gewünschte Datei umleiten und so sicherstellen, dass die Ausgabe des Befehls erfasst wird.

Das obige ist der detaillierte Inhalt vonWie behebt man Probleme bei der Ausgabeumleitung mithilfe der Java-Runtime?. 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