Skip to content

Feature Request: Allow specifying the address when binding to a port #378

Description

@lhchavez

When opening a Java debugging session in my local machine, I'd prefer to be able to have the TCP port that the debug server will bind to in the loopback interface instead of in all of them, mostly out of paranoia when I'm working on a shared WiFi.

Also (and maybe less interesting to other folks), at replit.com, we detect TCP ports bound to 0.0.0.0 and treat them magically as web servers, so this should also prevent opening a debug session causing an unintended web server from being "deployed".

So I would like for it to be specify what interface and/or port the JavaDebugServer should bind to. Since the JavaDebugServer is a singleton, it might make sense to configure this through a system property (since sending this configuration in the initialize message may not have the intended effect if the LSP process had already spawned one JavaDebugServer instance). So something like

$ java \
        -Declipse.application=org.eclipse.jdt.ls.core.id1 \
        -Dosgi.bundles.defaultStartLevel=4 \
        -Declipse.product=org.eclipse.jdt.ls.core.product \
        -Dcom.microsoft.java.debug.serverAddress=localhost:12345 \  # <- a brand new property
        -noverify \
        -Xmx256m \
        -jar ../jdt/plugins/org.eclipse.equinox.launcher_1.6.100.v20201223-0822.jar \
        -configuration ../jdt/config_linux \
        -data /home/runner/JavaDAP \
        --add-modules=ALL-SYSTEM \
        --add-opens', 'java.base/java.util=ALL-UNNAMED \
        --add-opens', 'java.base/java.lang=ALL-UNNAMED

should do the trick.

Activity

  1. github-actions commented on Nov 14, 2025

    @github-actions

    Hi lhchavez, I'm an AI Support assistant here to help with your issue. While the team reviews your request, I wanted to provide some possible tips and documentation that might help you in the meantime.

    This is currently not supported by the Java Debug extension. There is no built-in setting to constrain the debug server’s listening address to localhost. You can work around this by launching your target JVM manually with JDWP agent arguments:

    • Add a “launch” configuration in your .vscode/launch.json:
      {
        "type": "java",
        "name": "Launch with custom agent",
        "request": "launch",
        "mainClass": "com.example.Main",
        "vmArgs": "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=localhost:12345"
      }
    • Then use an “attach” configuration to connect:
      {
        "type": "java",
        "name": "Attach to custom agent",
        "request": "attach",
        "hostName": "localhost",
        "port": 12345
      }

    Duplicate issues: none.

    Other references with high confidence:

    Other references with low confidence

    The team will respond to your issue shortly. I hope these suggestions are helpful in the meantime. If this comment helped you, please give it a 👍. If the suggestion was not helpful or incorrect, please give it a 👎. Your feedback helps us improve!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions