我正在尝试使用Java运行Asterisk CLI。 例如
asterisk -rx "core show license"
我实现了像这样的Java代码
Process p = Runtime.getRuntime().exec("asterisk -rx \"core show license\"");
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String line = reader.readLine();
但我得到的是
No such command '"core' (type 'core show help core' for other possible commands)
来自Linux控制台。
我想知道我做错了什么。
由于
答案 0 :(得分:0)
Process p = Runtime.getRuntime().exec(new String[]{"asterisk","-rx","\"core show license\""});
在您的版本exec(String)中,字符串将由默认的StringTokenizer标记,该字符串按空格分隔标记。这就是未知的“星号核心命令”的原因。
(如果“核心展示许可证”命令必须进入引号,则不是真的)
答案 1 :(得分:0)
这样怎么样:
Process p = Runtime.getRuntime().exec(
new String[] {"asterisk", "-rx", "core show license"});