package com.asterisk;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
public class RunAsterisk {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
String[] cmd = {"asterisk", "-rx","file convert /home/lws/1.g723 /home/lws/1.wav"};
Process process = Runtime.getRuntime().exec(cmd);
InputStreamReader ir = new InputStreamReader(process.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
String line;
while ((line = input.readLine()) != null) {
System.out.println(line);
if("".equals(line)){
break;
}
}
System.out.println("finished ...");
} catch (java.io.IOException e) {
System.out.println("IOException " + e.getMessage());
}
}
}
必须用字符串数组把命令传进去,否则就没有办法正确执行。Why?I don't know.....
似乎是后面命令需要用""扩起来,但是"本身在用字符串传递给命令行的时候,即使是增加转义符也无法正确识别。导致-rx后的命令都无法识别。恐怕kill命令也是这个问题,只是以前用脚本代替了这种方法。