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 系统中,在路径上搜索命令是由 shell 处理的,而不是系统调用本身,所以当你使用系统调用运行命令时,你必须准确指定在哪里找到要运行的程序。

于 2013-08-10T12:05:41.423 回答