使用Java执行linux命令时出错

时间:2013-08-10 11:51:30

标签: 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

我执行此命令的Linux框已经安装了dumpcap,它位于(/ usr / local / bin)下

我在做什么错,请帮忙

3 个答案:

答案 0 :(得分: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");

答案 1 :(得分:4)

使用以下行,并使用确切的路径:

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

答案 2 :(得分:1)

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