Note that a new JVM tool has been made available. VisualVM is a tool that provides detailed information about Java applications while they are running. It provides an intuitive graphical user interface that allows you to easily see information about multiple Java applications. Java applications are run by a Java Virtual Machine, or VM.
If you are running Java SE 6 – VisualVM provides an overview, system properties, monitor, profiler, thread dump, heap dump and more. The name VisualVM comes from the fact that VisualVM provides VM information visually. VisualVM is a java.net project which you can get an article providing a visual tour here. You can download it from here.