Heim >Java >javaLernprogramm >Wie kann ich Linux-Shell-Befehle mit Umleitungen und Pipes von Java aus ausführen?
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!