如果 file/connection 资源未在运行时关闭,如何找到 Java 资源泄漏。?

How to find the Java resource leaks if the file/connection resources are not being closed at runtime.?

  1. 是否可以在代码中找到未关闭的资源流 运行时间?
  2. 有没有什么工具或者方法可以找到file/connection 资源正在泄漏并且开发人员未正确关闭。 我想在程序运行时使用 Heap Dump 或任何 其他方法可用。请让我知道,如果你知道任何工具或 图书馆可用。

谢谢。

一些探查器提供了检测资源泄漏的能力。例如,在 JProfiler 中,有一个 "Files" 探测器显示哪些文件仍处于打开状态

相同的功能可用于套接字和进程。

资源泄漏的另一个常见来源是 JDBC 由 JDB 探测器处理的连接:

免责声明:我公司开发了 JProfiler。