使用Java运行Asterisk CLI

时间:2012-06-14 12:17:19

标签: java command-line-interface asterisk

我正在尝试使用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控制台。

我想知道我做错了什么。

由于

2 个答案:

答案 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"});