Piping mit Runtime.exec()
In Java kann die Verwendung von Piping-Operationen mit Runtime.exec() aufgrund von Cross- Plattforminkonsistenzen im Pipe-Verhalten. Es gibt jedoch mehrere Methoden, um dieses Problem zu beheben.
Skriptausführung
Ein Ansatz besteht darin, ein Skript zu erstellen, das die gewünschten Pipe-Operationen kapselt, und das Skript stattdessen auszuführen einzelne Befehle. Zum Beispiel:
#!/bin/sh ls /etc | grep release
Führen Sie dann das Skript mit exec aus:
String[] cmd = {"/bin/sh", "path/to/script.sh"}; Process p = Runtime.getRuntime().exec(cmd);
Shell-Based Pipe
Eine weitere Option ist die Verwendung die Pipe-Funktionalität der Shell direkt wie folgt:
String[] cmd = { "/bin/sh", "-c", "ls /etc | grep release" }; Process p = Runtime.getRuntime().exec(cmd);
Mit der Option „-c“ kann die Shell Führt die angegebene Befehlszeichenfolge in einer Subshell aus und ermöglicht so die Verwendung von Pipes und anderen Shell-Funktionen.
Das obige ist der detaillierte Inhalt vonWie kann ich Piping mit Javas Runtime.exec() zuverlässig nutzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!