无法使用 Eclipse 调试 Java 应用程序

Cannot debug Java application with Eclipse

我的机器上有一个 Java (Vert.x) 应用程序,我正在尝试将 Eclipse 附加到该应用程序以进行调试。

我通常在控制台中启动 Java 应用程序,如下所示:

java -jar build/libs/my-app.jar

阅读有关调试的信息后,我尝试按如下方式启动应用程序:

java -jar build/libs/my-app.jar -Xdebug -Xrunjdwp:transort:transport=dt_socket,address=8001,server=y,suspend=n

当我 运行 执行此操作时,该应用程序似乎在控制台中正常启动。

然后我进入 Eclipse,并尝试通过 Run -> Debug Configurations 调试连接到应用程序。这是我的调试配置的样子:

当我单击调试时,弹出一个错误框,提示连接被拒绝(我覆盖了我的真实应用程序的名称)。见下文:

我做错了什么?如何进行远程调试以使用 Eclipse 连接到我的应用程序?

根据我对这个 JDWP documentation 的阅读,您的 -Xrunjdwp 选项不正确:

-Xrunjdwp:transort:transport=dt_socket,address=8001,server=y,suspend=n

应该是

-Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n

如果您的系统有多个 IP 地址,可能会混淆代理正在侦听哪些 IP 地址的连接。您可以强制使用特定地址;例如

-Xrunjdwp:transport=dt_socket,address=127.0.0.1:8001,server=y,suspend=n

并在 Eclipse 调试连接参数中使用匹配的 IP 和端口。


AND ... 正如 Dave Thompson 发现的那样...所有 JVM 选项都必须放在 之前 -jar 参数。 (-jar name.jar 之后的任何内容都将被视为您的应用程序的命令行参数。)