Thanks.
Some profilers offer the capability to detect resource leaks. In JProfiler, for example, there is a "Files" probe that shows you which files are still open
The same functionality is available for sockets and processes.
Another common source of resource leaks are JDBC connections which are handled by the JDB probe:
Disclaimer: My company develops JProfiler.