Wykonaj polecenie terminalu linux w java?

Próbuję wykonać komendę SOX z java, ale niestety powraca błąd za każdym razem. Każda inna komenda SOX działa idealnie! Oto kod:

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);         
    }
}

Kiedy wykonuję to samo polecenie sox w terminalu, działa poprawnie. Naprawdę nie mogę zrozumieć, na czym polega problem !! Czy to z powodu „|” symbol??

questionAnswers(2)

yourAnswerToTheQuestion