win7下无法执行nbtstat.exe命令获取网卡地址?
想用nbtstat.exe执行发现执行结果为空,但是在命令窗口中执行时可以的,那位遇到过同样的问题?
import java.io.BufferedReader;--------------------编程问答-------------------- 会不会是执行权限的问题 --------------------编程问答--------------------
import java.io.InputStreamReader;
public class TestRuntime {
public static void main(String[] args) {
try {
Process process = Runtime.getRuntime().exec("cmd /c C:\\Windows\\system32\\nbtstat.exe -a 192.168.44.1");
BufferedReader read = new BufferedReader(new InputStreamReader(process.getInputStream()));
String str = null;
while ((str = read.readLine()) != null) {
System.out.println(str);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
但是我用管理员帐户登录系统执行,也还是不行呀? --------------------编程问答-------------------- 我也碰到与楼主相同的问题了,报Cannot run program "nbtstat": CreateProcess error=2, ?????????。
我的系统是Win7 64位的,请问楼主怎么解决的?谢谢! --------------------编程问答-------------------- 这问题都两年了,居然没人回答,好吧,我是来找答案的,不是来解答的 --------------------编程问答-------------------- C:\\Windows\\system32\\nbtstat.exe在程序中调,是找不到的。
是64位系统的产生的原因,把命令改成“cmd /c C:\\Windows\\sysnative\\nbtstat.exe -a 192.168.44.1”就可以了,至于sysnative是什么意思,自行网上查查。
你的代码之所以不打印任何东西,也不输出错误信息,是因为用了process.getInputStream(),它是获取到了std_out,而由于前面说的,找不到C:\\Windows\\system32\\nbtstat.exe,会在std_err输出错误信息,所以你把process.getInputStream()改成getErrorStream()就可以了,它会把错误信息打出来。 --------------------编程问答-------------------- 楼上的,我爱你,太强大了,就这个问题我搞了一下午了,搞的蛋疼啊,网上查的东东都回答的牛头不对马嘴 --------------------编程问答-------------------- 留个脚印,能用到
补充:Java , Java SE