2

Java でアスタリスク 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\""});

バージョンexec(String)では、文字列は、トークンをスペースで区切るデフォルトの StringTokenizer によってトークン化されます。これが、アスタリスクの不明な「コア コマンド」の理由です。

(「core show license」コマンドを引用符で囲む必要がある場合は、わかりません)

于 2012-06-14T12:25:51.893 に答える
0

この方法はどうですか:

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