I have a Java application that is leaking memory. I know which objects are not being freed during garbage collection, but I can\'t work out what is referencing them.
On a really basic level, you can use the commands jhat and jmap to read a heap file from a running Java process and then process it - it starts a small web server on a local port. It's not exactly easy to read, but you don't have to buy a profiler to use it.