我正在为sipp命令行程序编写Java接口。我目前的代码是:
ProcessBuilder builder = new ProcessBuilder("sipp", "-sn uac",
"127.0.0.1");
Map<String, String> environment = builder.environment();
Process javap = builder.start();
InputStreamReader tempReader = new InputStreamReader(new BufferedInputStream(javap.getInputStream()));
BufferedReader reader = new BufferedReader(tempReader);
while (true){
String line = reader.readLine();
if (line == null)
break;
System.out.println(line);
}
这对我来说不起作用,我有sipp环境变量设置所以这不是问题。标准输出是sipp的帮助信息。我究竟做错了什么?另外我想知道一旦我运行了sipp,是否可以将参数传递给与之关联的processBuilder对象,以便我可以更改通话率?即sipp让用户通过按+, - 来改变通话率,*,这可能吗?
答案 0 :(得分:1)
尝试分解-sn
和uac
参数:
ProcessBuilder builder = new ProcessBuilder("sipp", "-sn", "uac", "127.0.0.1");
我也想知道 sipp运行是否可以通过 processBuilder对象的参数 与之相关,所以我可以改变 通话费率?
如果sipp
期望从标准输入中输入,您应该能够获取进程的输出流(javap.getOutputStream()
)并向其写入命令。我对sipp
一无所知,告诉你这是否有效。