是否有任何方法可以检测和处理 Java 库是否从使用该库的 Java 程序中正确释放文件句柄(通过“关闭”),而无法访问实际的库代码并插入相应的“最终关闭”语句?
如果检测可行,是否有任何方法可以在不引用正在读取文件的 Reader(或 FileInputStream)的情况下关闭这些文件句柄?
最佳答案
我认为 Kohsuke 的 file leak detector与所问的非常接近(大约 4 年前)。它是一个 Java 代理,“跟踪在 JVM 中的位置/时间/谁打开文件。您可以让代理跟踪这些操作以找出访问模式或处理泄漏,并转储当前打开的文件列表以及位置/何时/谁打开它们”。更多信息请参见上面的链接。
关于java - Java中第三方库文件句柄泄漏的检测和处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2701208/