使用Java执行linux命令时出错

使用Java执行linux命令时出错,java,linux,Java,Linux,我正在尝试使用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 执行此命令的im安装了dumpcap的Linux框,dumpcap位于(/usr/local/b

我正在尝试使用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
执行此命令的im安装了dumpcap的Linux框,dumpcap位于(/usr/local/bin)下

我犯了什么错误,请帮助我,然后再试一次

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");
然后试试看

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");

使用下一行,精确路径:

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

使用下一行,精确路径:

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

如前所述,您需要使用可执行文件的全名。原因是,在Unix系统中,在路径上搜索命令是由shell处理的,而不是由系统调用本身处理的,因此,当您使用系统调用运行命令时,必须指定要运行的程序的确切位置。

如前所述,您需要使用可执行文件的全名。原因是在Unix系统中,在路径上搜索命令是由shell处理的,而不是由系统调用本身处理的,因此当您使用系统调用运行命令时,您必须准确地指定运行程序的位置。

为什么斜杠会有问题?为什么斜杠会有问题?谢谢Chrylis,有用的信息谢谢Chrylis,有用的信息