Heim >Java >javaLernprogramm >Wie kann ich Piping mit Javas Runtime.exec() zuverlässig nutzen?

Wie kann ich Piping mit Javas Runtime.exec() zuverlässig nutzen?

DDD
DDDOriginal
2024-12-15 22:25:15633Durchsuche

How Can I Reliably Use Piping with Java's Runtime.exec()?

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!

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