execShellCmd函数单独执行没问题,一放到循环while里面就不正常了
java.io.IOException: write failed: EBADF (Bad file number)
调试了一下午也没解决,各位帮我看看..
public void execShellCmd(String cmd){
try{
OutputStream output = process.getOutputStream();
DataOutputStream dataOutput = new DataOutputStream(output);
dataOutput.writeBytes(cmd);
dataOutput.flush();
output.close();
dataOutput.close();
}catch(Throwable t){
t.printStackTrace();
}
}
while(true){
try{
execShellCmd(str);
sleep(time);
}catch(InterruptedException e){
e.printStackTrace();
}
}
这个问题已经解决了,其原因是java自动回收机制所导致的,在第一次循环结束之后,回收器就回收了
你这样while反复循环执行。有执行多少次,是不是把系统文件句柄消耗完了
不应该先关闭dataoutput流吗?