我的机器上有一个 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 和端口。
<小时/>并且...正如 Dave Thompson 发现的...所有 JVM 选项都必须放在 -jar
参数之前。 (-jar name.jar
之后的任何内容都将被视为应用程序的命令行参数。)
关于java - 无法使用 Eclipse 调试 Java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49949446/