adam bien's blog

How to remotely debug java applications - almost without additional tools 📎

Developers ask me often, how to debug remote Enterprise Java Beans, Servlets or MBeans. This is really easy and possible since JDK 1.3. You have only to provide some command line options (which I always forget - this is actually the motivation for this post :-)):

-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y

Than you can connect to the remote process or server using eclipse, netbeans or other tools (you have to choose the remote debugging option). You have only to know the IP-address and remember the port-number. The last parameter suspend=y specifies whether the server process will wait for a connection of the debugger or not. You can attach and detach the debugger to you process without killing it.
There is also a great, opensource, debugger jswat which can be used for debugging pursposes.