2

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

我想知道我做错了什么。

谢谢

4

2 回答 2

0

这种方式怎么样:

Process p = Runtime.getRuntime().exec(
    new String[] {"asterisk", "-rx", "core show license"});
于 2012-06-14T12:27:38.863 回答
0
Process p = Runtime.getRuntime().exec(new String[]{"asterisk","-rx","\"core show license\""});

在您的版本exec(String)中,String 将由默认的 StringTokenizer 进行标记,该 StringTokenizer 用空格分隔标记。这就是星号中未知的“核心命令”的原因。

(不舒尔,如果“core show license”命令必须加引号)

于 2012-06-14T12:25:51.893 回答