【问题标题】:Cannot debug Java application with Eclipse无法使用 Eclipse 调试 Java 应用程序
【发布时间】:2018-10-01 15:09:42
【问题描述】:

我的机器上有一个 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 进行远程调试以连接到我的应用程序?

【问题讨论】:

  • 检查java是否使用netstat打开了端口,并确保你在Host输入框中输入了正确的主机名
  • 另外,检查防火墙是否阻塞了端口。
  • 还要确保您的 Eclipse 网络代理配置设置为绕过 127.0.0.1 和 localhost 的代理。

标签: java eclipse debugging remote-debugging vert.x


【解决方案1】:

根据我对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 之后的任何内容都将被视为应用程序的命令行参数。)

【讨论】:

  • 而且必须在-jar jarfile选项之前-jar jarfilemainclassname 之后的任何内容都用作 Java 应用程序的参数。
  • 好收获!已更新。
猜你喜欢
  • 1970-01-01
  • 2015-09-29
  • 1970-01-01
  • 1970-01-01
  • 2018-08-09
  • 2010-12-05
  • 2015-01-06
  • 2014-08-13
相关资源
最近更新 更多