windows xp运行环境下,调用外部exe时没有释放资源
1.操作系统:windows xp 2002 professional +sp1
2.jre: 1.4.2_05 版本
3.问题描述如下:
通过Runtime.getRuntime().exec(...)调用外部exe程序,程序执行完毕后,发现有些资源(文件句柄\ Device\NamedPipe\Win32Pipes.......)没有释放.而在windows 2k professional时都释放了.由于是周期性的调用该exe,所以时间久了,就会出现java.io.IOException:Bad File Descriptor
4.大致代码如下:
String cmd = "bin" + File.separator + "nmap -sP " + subNet+ " -T Insane";
Runtime rt = Runtime.getRuntime();
InputStream is = null;
InputStreamReader isr = null;
BufferedReader bufferedReader = null;
Process process = rt.exec(cmd);
is = _process.getInputStream();
isr = new InputStreamReader(is);
bufferedReader = new BufferedReader(isr);
while (bufferedReader.readLine()) != null) {
}
process.waitFor();
is.close();
isr.close();
br.close();
process.destroy();
请教大家,可能引起问题的原因,是不是和操作系统密切相关?