1

Javaを使用して次のコマンドを実行しようとしています

Process acquirInterfaces = Runtime.getRuntime().exec("dumpcap -D");

としてエラーが発生します

java.io.IOException: Cannot run program "dumpcap": java.io.IOException: error=2, No such file or directory

このコマンドを実行している Linux ボックスには、(/usr/local/bin) の下にある dumpcap がインストールされています。

私がしている間違いは何ですか、助けてください

4

3 に答える 3

4

それから試してください

Process acquirInterfaces = Runtime.getRuntime().exec("/usr/local/bin/dumpcap -D");

スラッシュに問題がある場合は、File.separator を使用します。

Process acquirInterfaces = Runtime.getRuntime().exec(File.separator + "usr" + File.separator + "local" + File.separator + "bin" + File.separator + "dumpcap -D");
于 2013-08-10T11:52:44.313 に答える
4

正確なパスを指定して、次の行を使用します。

Process acquirInterfaces = Runtime.getRuntime().exec("/usr/local/bin/dumpcap -D");
于 2013-08-10T11:53:50.800 に答える
1

前述のとおり、実行可能ファイルの完全な名前を使用する必要があります。この理由は、Unix システムでは、パス上のコマンドの検索は、システム コール自体ではなく、シェルによって処理されるためです。そのため、システム コールを使用してコマンドを実行している場合は、検索する場所を正確に指定する必要があります。実行するプログラム。

于 2013-08-10T12:05:41.423 に答える