我正在尝试使用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)下
我在做什么错,请帮忙
答案 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处理的,而不是系统调用本身,因此当您使用系统调用运行命令时,您必须准确指定查找位置要运行的程序。