You're running on a 1.4 JVM, correct? It's not a 1.4-compiled class running on a 1.6 JVM? And is there a reason that you can't run the application on a 1.6 JVM, at least in a development environment?
If not, the built-in HProf agent should work, at least to find a memory leak. It will tell you what objects are live when you kill your program, and where they were allocated.
I'm not 100% certain, but I believe that you need to use the -Xrunhprof
invocation option (the linked doc invokes with -agentlib
, which I think may have been added in 1.5). Also, I think there was a version of 1.4 that supported the "modern" debug interface, so could be used with JConsole.