Heim >Java >javaLernprogramm >Wie kann ich Linux-Shell-Befehle mit Umleitungen und Pipes von Java aus ausführen?

Wie kann ich Linux-Shell-Befehle mit Umleitungen und Pipes von Java aus ausführen?

DDD
DDDOriginal
2024-11-23 13:34:09880Durchsuche

How Can I Execute Linux Shell Commands with Redirections and Pipes from Java?

Aufrufen von Linux-Shell-Befehlen aus Java: Eine detaillierte Erklärung

Beim Versuch, Linux-Befehle aus Java heraus auszuführen, ist es wichtig, die zu verstehen Nuancen Shell-spezifischer Befehle und deren Kompatibilität mit der Java-Laufzeitumgebung Umgebung.

Herausforderung:Ausführen von Befehlen mit Umleitungen und Pipes

Der erste Versuch mit Process p = Runtime.getRuntime().exec("shell command") schlägt fehl Behandeln Sie Umleitungen oder Pipes. Dies liegt daran, dass exec() nicht direkt in die System-Shell integriert ist.

Lösung:Nutzung des Shell-„Proxy“

Um Shell-Befehle mit Umleitungen und Pipes auszuführen, Sie können einen „Shell-Proxy“-Ansatz nutzen. Dazu gehört die Angabe der Shell, die als Zwischenschritt verwendet werden soll.

Implementierung:

Ersetzen Sie exec() durch Folgendes:

Process p = Runtime.getRuntime().exec(new String[]{"csh", "-c", "cat /home/narek/pk.txt"});

In In diesem Beispiel ist „csh“ der Shell-Proxy, der zur Interpretation des Befehls „cat“ verwendet wird /home/narek/pk.txt".

Zusätzlicher Hinweis:

Wenn bei der Verwendung von csh Probleme auftreten, sollten Sie stattdessen Bash als Shell-Proxy verwenden:

Process p = Runtime.getRuntime().exec(new String[]{"bash", "-c", "ls /home/XXX"});

Das obige ist der detaillierte Inhalt vonWie kann ich Linux-Shell-Befehle mit Umleitungen und Pipes von Java aus ausführen?. 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