Heim > Java > javaLernprogramm > Wie kann die Ausgabe beim Ausführen von Shell-Skripten mithilfe der Java-Runtime effektiv umgeleitet werden?

Wie kann die Ausgabe beim Ausführen von Shell-Skripten mithilfe der Java-Runtime effektiv umgeleitet werden?

Susan Sarandon
Freigeben: 2024-10-24 08:24:29
Original
696 Leute haben es durchsucht

How to Effectively Redirect Output When Executing Shell Scripts using Java's Runtime?

Ausführen von Shell-Skripten mit umgeleiteter Ausgabe mithilfe der Java-Runtime

Beim Versuch, Shell-Skripte mit der Runtime.exec()-Methode von Java auszuführen, wird die Ausgabe Die Umleitung funktioniert möglicherweise nicht wie vorgesehen. Dieses Problem tritt auf, wenn der Umleitungsoperator >> wird im Skript verwendet.

Problem:

Process p = Runtime.getRuntime().exec("sh somescript.sh >> out.txt");
Nach dem Login kopieren

Trotz der erfolgreichen Ausführung des Skripts wird die Ausgabe nicht in die angegebene Datei und die Datei selbst umgeleitet bleibt nicht erstellt.

Lösung:

Um die Ausgabe effektiv umzuleiten, ist es notwendig, die ProcessBuilder-Klasse von Java zu nutzen:

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
Nach dem Login kopieren

Erläuterung:

Durch die Verwendung von ProcessBuilder können Sie die Umleitung von stdout- und stderr-Streams unabhängig voneinander konfigurieren. Mit den Methoden „redirectOutput()“ und „redirectError()“ können Sie eine Datei für die Ausgabeumleitung angeben.

Beachten Sie, dass die Datei „out.txt“ automatisch erstellt wird, wenn sie nicht existiert. Wenn es bereits vorhanden ist, wird der vorhandene Inhalt überschrieben.

Das obige ist der detaillierte Inhalt vonWie kann die Ausgabe beim Ausführen von Shell-Skripten mithilfe der Java-Runtime effektiv umgeleitet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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