Jetty Logo
Version: 9.4.31.v20200723
Contact the core Jetty developers at

private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services for sponsored feature development

Enable remote debugging

Remote Debugging

Remote Debugging

If you have a web application deployed into Jetty you can interact with it remotely from a debugging perspective easily. The basics are that you must start up the remote JVM with additional parameters and then start up a remote debugging session in Eclipse for the webapp in question. This is easily accomplished.


This example assumes you are deploying your web application into the jetty-distribution.

Starting Jetty

Assuming you have your webapp deployed into jetty, there are two different ways to approach this:

Via command line

Add the required parameters on the commandline like so.

$ java -Xdebug -agentlib:jdwp=transport=dt_socket,address=9999,server=y,suspend=n -jar start.jar
Via start.ini

This approach is best used if you want to debug a particular jetty-distribution and not have to remember the commandline incantations.

  1. Edit the start.ini and uncomment the --exec line, this is required if you are adding jvm options to the start.ini file as jetty-start must generate the classpath required and fork a new jvm.
  2. Add the parameters mentioned above in the Command Line option so your start.ini looks like this:

    # Configure JVM arguments.
    # If JVM args are include in an ini file then --exec is needed
    # to start a new JVM from start.jar with the extra args.
    # If you wish to avoid an extra JVM running, place JVM args
    # on the normal command line and do not use --exec
    # -Xmx2000m
    # -Xmn512m
    # -XX:+UseConcMarkSweepGC
    # -XX:ParallelCMSThreads=2
    # -XX:+CMSClassUnloadingEnabled
    # -XX:+UseCMSCompactAtFullCollection
    # -XX:CMSInitiatingOccupancyFraction=80
    # -verbose:gc
    # -XX:+PrintGCDateStamps
    # -XX:+PrintGCTimeStamps
    # -XX:+PrintGCDetails
    # -XX:+PrintTenuringDistribution
    # -XX:+PrintCommandLineFlags
    # -XX:+DisableExplicitGC

    Uncomment any other jvm environmental options you so desire for your debugging session.

  3. Regardless of the option chosen, you should see the following lines at the top of your jetty-distribution startup.

    Listening for transport dt_socket at address: 9999

Linking with your IDE

Refer to the documentation for your ide:

See an error or something missing? Contribute to this documentation at Github!(Generated: 2020-07-23)