通过搜索网络,总结如下:
1.linux操作系统本身的限制,可以用 ulimit -a查看,找到:“open files (-n) 1024”该项为默认设置,可以通过ulimit -n *来修改。*为需要修改的数,应该为1024的倍数。
2.Java程序的问题,主要存在于对文件读写操作时候未关闭,造成了过多文件资源打开不能及时关闭,以至于达到操作系统上限。
3.修改Tomcat的JVM内存大小
说明:如果程序本身存在问题,采用第一种方式或者第三种方式在未来的时间内仍然会出现这种错误。
例如我的程序在经过仔细审查之后发现了确实存在BufferedReader打开没有关闭的情况,修改后问题解决。