Einen Linux Terminal Befehl in Java ausführen?

Ich versuche, einen SOX-Befehl von Java auszuführen, aber leider wird jedes Mal ein Fehler zurückgegeben. Alle anderen SOX-Befehle funktionieren jedoch einwandfrei !! Hier ist der Code:

class Simple {
    public static void main(String args[]) throws IOException, Exception {
        Process p;
        BufferedReader br;
        String co = "sox speech_16.wav -p pad 0 2.5 | sox - -m speech_16.wav speech_output.wav";
        p = Runtime.getRuntime().exec(co);
        br = new BufferedReader(new InputStreamReader(p.getInputStream()));
            int returnCode = p.waitFor();
        System.out.println("reurn code : "+returnCode);         
    }
}

Wenn ich den gleichen sox-Befehl im Terminal ausführe, funktioniert er einwandfrei. Ich kann wirklich nicht verstehen, was das Problem ist !! Liegt es am '|' Symbol??

Antworten auf die Frage(2)

Ihre Antwort auf die Frage