无法使用 intelliJIdea 打开用于 Spring 启动调试的调试器端口

Nwn*_*Nwn 2 debugging intellij-idea spring-boot

我想用 IntelliJ 调试一个 Spring 启动应用程序。我正在使用 Windows 10。当我使用以下命令运行我的 Spring Boot 项目时,它工作正常。但是调试不起作用。

mvn spring-boot:run -Drun.profiles=dev -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
Run Code Online (Sandbox Code Playgroud)

然后我用 intelliJ 制作了一个远程调试器,如下所示。

在此处输入图片说明

但是当我单击调试按钮时,intelliJ 显示以下消息。

运行“RemoteDeBugger”时出错:无法打开调试器端口(本地主机:5005):java.net.ConnectException“连接被拒绝:连接

上述行为的原因是什么以及如何正确进行调试。

Phi*_*imo 7

上述行为的原因是什么?

您出现此错误是因为您的远程调试器正在寻找侦听端口 5005 的 JVM。

如何正确调试?

您必须首先运行这样的 JVM,我的意思是使用端口 5005。好吧,要做到这一点,您已经有了答案:

mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
Run Code Online (Sandbox Code Playgroud)

或者

mvn spring-boot:run -Dspring-boot.run.jvmArguments="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
Run Code Online (Sandbox Code Playgroud)

agentlib:jwdp按照文档中的规定使用更好

从 5.0 开始,-agentlib:jdwp 选项用于加载和指定 JDWP 代理的选项。对于 5.0 之前的版本,使用 -Xdebug 和 -Xrunjdwp 选项(5.0 实现还支持 -Xdebug 和 -Xrunjdwp 选项,但较新的 -agentlib:jdwp 选项更可取,因为 5.0 中的 JDWP 代理使用 JVMTI 接口到VM 而不是旧的 JVMDI 接口)。

一切都成功启动后,您可以通过单击debug来启动您配置的远程调试器。

确保您使用的端口与用于运行应用程序的端口相同。

那时您将很适合从断点开始分析您的代码。

  • 不知道为什么当答案完美解决问题时它被否决了。没有给出适当理由的否决投票违背了这个社区的善意。 (2认同)