2017-08-04 110 views
0

以下是我編寫的使用sox修剪wav文件的代碼。 sox被安裝在我的系統中,如果我直接在cmd中使用sox命令,它可以正常工作,但在java代碼中它的運行是部分的,並且沒有創建outfile。現在我收到的'C:\ Program'不被識別爲內部或外部命令,可操作的程序或批處理文件。如何在Windows環境下使用cmd從java代碼運行sox命令

Process p=Runtime.getRuntime().exec("cmd /c start cmd.exe /K \"C:\\Program Files (x86)\\sox-14-4-2\\sox.exe && sox D:\\Office\\VoiceClipping\\AudioFiles\\test.wav D:\\Office\\VoiceClipping\\AudioFiles\\ans.wav trim 5 =10\""); 
     p.waitFor(); 
     BufferedReader reader=new BufferedReader(
       new InputStreamReader(p.getInputStream()) 
     ); 
     String line; 
     while((line = reader.readLine()) != null) 
     { 
      System.out.println(line); 
     } 

回答

0

如果目錄有空格,把引號it.In你的情況下,把周圍"Program Files (x86)" quotates。

+0

感謝您的回覆,我改變我的安裝目錄sox現在我使用「Process p = Runtime.getRuntime().exec(」cmd/c start cmd.exe/K \「sox D:\\ Office \\ VoiceClipping \\ AudioFiles \\ test.wav D:\\ Office \\ VoiceClipping \\ AudioFiles \\ ans.wav trim 5 = 10 \「」);「但sox命令仍然沒有傳遞給cmd。 – user3882060