0

リスナーを停止すると、次のエラーメッセージが表示されます...

Linux 用 LSNRCTL: バージョン 10.2.0.4.0 - 2012 年 6 月 1 日 12:21:31 の製品版 Copyright (c) 1991, 2007, Oracle. 全著作権所有。NL-00857: 「停止」する引数の数が間違っています(0から1が必要です)

次のコマンドを使用してリスナーを停止しています..

$ORACLE_HOME/bin/lsnrctl stop LISTENER

コマンドプロンプトからコマンドを実行すると機能しますが、Javaでは失敗します。

この問題を解決するのを手伝ってください....

4

2 に答える 2

0

envbash コマンドなので、java から実行することはできません。それを短いシェルスクリプトにしてJavaから実行するか、次のようにすることができます

String cmd = "/u01/app/oracle/product/10.2.0/db_1/bin/lsnrctl stop LISTENER";
String[] envp = "ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1";
Process proc = Runtime.getRuntime().exec(cmd, envp);
if (proc.waitFor() != 0) {
    throw new RuntimeException("exit value was nonzero");
}
于 2012-06-02T02:18:53.840 に答える
0

あなたの Java cmdStr は正しくないと思います。コマンド間にスペースを入れることはできません (env 変数を設定してから lsnrctl を呼び出します)。セミコロンを使用する必要があります。

String cmdStr="env ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1;/u01/app/oracle/product/10.2.0/db_1/bin/lsnrctl stop LISTENER";
于 2012-06-01T20:32:48.297 に答える