写了一个程序,用java调用本地命令,大概要调用5W+次。执行完回来看日志时,发现报了大概几十个java.io.IOException: java.io.IOException: error=24, Too many open files
google之,结果大多是建议增加ulimit,但,这终归是治标不治本的,然后结合着javadoc看自己的程序,发现Process中有destroy()这个方法,其描述是:
杀掉子进程。强制终止此 Process 对象表示的子进程。
而程序里是没有加的,所以初步判断是这个问题造成的,先加上再执行看看。
PS,网上很多用Runtime调本地命令的例子里,都没有加这个方法,大家注意。
后续:
加上之后没有出现过此错误。