Heim > Java > javaLernprogramm > Hauptteil

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

Linda Hamilton
Freigeben: 2024-11-26 01:55:10
Original
120 Leute haben es durchsucht

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

Linux-Shell-Befehle von Java aus mit Pipes und Umleitungen ausführen

Beim Versuch, mit Linux-Systemen von Java aus zu interagieren, stehen Entwickler oft vor der Herausforderung Ausführen von Shell-Befehlen mit erweiterten Funktionen wie Umleitung und Pipes. Um solche Aufgaben zu erledigen, ist es wichtig, die Nuancen des Aufrufs von Shell-Befehlen über Java zu verstehen.

Runtime.exec() ist eine häufig verwendete Methode zum Ausführen von Shell-Befehlen in Java. Es gelingt ihm jedoch nicht, eine ordnungsgemäße Shell-Umgebung einzurichten, was die Kompatibilität mit Umleitungen und Pipes einschränkt. Stattdessen besteht der bevorzugte Ansatz darin, einen neuen Prozess mit einem Shell-Interpreter zu erstellen und den Befehl als Argument zu übergeben.

Betrachten Sie den folgenden überarbeiteten Code:

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

Hier ist das „csh“ Der Interpreter wird mit der Option „-c“ gestartet, die es ihm ermöglicht, den angegebenen Befehl so auszuführen, als ob er direkt in die csh-Shell eingegeben würde. Dieser Ansatz richtet effektiv eine Shell-Umgebung ein und ermöglicht die Verwendung von Umleitungen und Pipes nach Bedarf.

Wenn auf Ihrem System csh nicht installiert ist, können Sie es wie folgt durch bash ersetzen:

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

Das obige ist der detaillierte Inhalt vonWie kann ich Linux-Shell-Befehle mit Pipes und Umleitungen von Java ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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