问题描述
想用nbtstat.exe执行发现执行结果为空,但是在命令窗口中执行时可以的,那位遇到过同样的问题?importjava.io.BufferedReader;importjava.io.InputStreamReader;publicclassTestRuntime{publicstaticvoidmain(String[]args){try{Processprocess=Runtime.getRuntime().exec("cmd/cC:\Windows\system32\nbtstat.exe-a192.168.44.1");BufferedReaderread=newBufferedReader(newInputStreamReader(process.getInputStream()));Stringstr=null;while((str=read.readLine())!=null){System.out.println(str);}}catch(Exceptione){e.printStackTrace();}}}
解决方案
解决方案二:
会不会是执行权限的问题
解决方案三:
引用1楼trocp的回复:
会不会是执行权限的问题
但是我用管理员帐户登录系统执行,也还是不行呀?
解决方案四:
我也碰到与楼主相同的问题了,报Cannotrunprogram"nbtstat":CreateProcesserror=2,?????????。我的系统是Win764位的,请问楼主怎么解决的?谢谢!
解决方案五:
这问题都两年了,居然没人回答,好吧,我是来找答案的,不是来解答的
解决方案六:
C:\Windows\system32\nbtstat.exe在程序中调,是找不到的。是64位系统的产生的原因,把命令改成“cmd/cC:\Windows\sysnative\nbtstat.exe-a192.168.44.1”就可以了,至于sysnative是什么意思,自行网上查查。你的代码之所以不打印任何东西,也不输出错误信息,是因为用了process.getInputStream(),它是获取到了std_out,而由于前面说的,找不到C:\Windows\system32\nbtstat.exe,会在std_err输出错误信息,所以你把process.getInputStream()改成getErrorStream()就可以了,它会把错误信息打出来。
解决方案七:
楼上的,我爱你,太强大了,就这个问题我搞了一下午了,搞的蛋疼啊,网上查的东东都回答的牛头不对马嘴
解决方案八:
留个脚印,能用到