作为系统级别,在Linux上,您可以使用lsof
。示例(将TOMCAT_PID替换为Tomcat进程的进程ID)
我的应用程序在Tomcat 5.5上运行,它打开一个未关闭的文本文件,并且在打开一定数量的文件后,服务器挂起并抛出错误java.io.IOException:打开的文件太多,一旦重新启动,即可正常工作Tomcat,我找到了根本原因,并使用FileInputStream.close()关闭了文本文件。
谁能帮助我找到服务器挂起之前打开的文件数。
我的应用程序在Tomcat 5.5上运行,它打开一个未关闭的文本文件,并且在打开一定数量的文件后,服务器挂起并抛出错误java.io.IOException:打开的文件太多...]] >>
作为系统级别,在Linux上,您可以使用lsof
。示例(将TOMCAT_PID替换为Tomcat进程的进程ID)
lsof -p TOMCAT_PID
并且如果您更确切地知道要查找的内容,则只需grep:
lsof -p TOMCAT_PID | grep /path/to/somewhere
编辑:我从未使用过它,但是在Windows上,我会尝试这样的操作:http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
尝试在Windows中使用this。您可以从中查看所有打开的文件。