我想用IntelliJ调试Spring Boot应用程序。我正在使用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"
然后我使用intelliJ进行远程调试,如下所示。
但是当我单击调试按钮时,intelliJ显示以下消息。
运行'RemoteDeBugger'时出错:无法打开调试器端口 (localhost:5005):java.net.ConnectException“连接被拒绝: 连接
出现上述现象的原因是什么,以及如何正确进行调试。
答案 0 :(得分:0)
出现上述行为的原因是什么?
出现此错误是因为远程调试器正在寻找侦听端口5005的JVM。
如何正确进行调试?
您必须首先运行这样的JVM,我的意思是使用端口5005,要做到这一点,您已经有了答案:
mvn spring-boot:run -Drun.profiles=dev -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
或
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
默认情况下,除非指定了jvm参数或代理,否则运行目标将在同一进程中运行,上述配置将确保您分叉该进程并能够对其进行调试。
一切都成功启动之后,您可以通过单击 debug 来启动配置的远程调试器。
确保使用的端口与运行该应用程序所用的端口相同。
那时候您会很高兴从断点开始分析代码。
答案 1 :(得分:0)
在最新版本的 IntelliJ IDEA 中,只需在配置中选择“远程”选项并填写您的主机。然后将 JVM 命令行参数复制到远程 JVM,如 Philippe Simo 的回答中所述。