I have been looking for a way to take thread dump for java started using javaw.exe and java installed as windows service. I have come across a wonderful tool called AdaptJ (www.adaptj.com). It has a wonderful GUI.
It lists all the running JVMs in the machine (including the ones inside browser, inbedded in other executables etc) with meaningful descriptions to identify the process
You can select any JVM and take thread dump
It also shows the system properties, and memory parameters
There is beanshell and a number of commands are available to debug the running JVM.
You can change the log level (java.util.logging, and log4j)
You can trace AWT events
You can monitor file sytem, network access by the JVM
And much more!!!
A cool tool