2017-08-04 83 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