无法使用 intelliJ Idea 打开 Spring Boot 调试的调试器端口

Posted

技术标签:

【中文标题】无法使用 intelliJ Idea 打开 Spring Boot 调试的调试器端口【英文标题】:Unable to open debugger port for Spring boot debug with intelliJIdea 【发布时间】:2018-12-18 00:45:17 【问题描述】:

我想用 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”时出错:无法打开调试器端口 (本地主机:5005):java.net.ConnectException“连接被拒绝: 连接

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

【问题讨论】:

尝试使用其他端口号,查看应用是否正在使用 TcpView 侦听指定端口上的调试器连接。 我认为没有。似乎即使我在调试模式下启动了应用程序,它也没有在调试模式下启动。我尝试了尊重端口号 你检查***.com/a/50677882/104891了吗? 【参考方案1】:

上述行为的原因是什么?

你有这个错误是因为你的远程调试器正在寻找一个监听端口 5005 的 JVM。

如何正确调试?

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

mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"

mvn spring-boot:run -Dspring-boot.run.jvmArguments="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"

使用agentlib:jwdp 更好,如Documentation 中指定的那样

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

一切顺利启动后,您可以通过点击debug来启动您配置的远程调试器。

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

到那时你就可以开始从断点分析你的代码了。

【讨论】:

不知道为什么当答案完美地解决了这个问题时它被否决了。没有给出适当理由的投票反对这个社区的善意。 最后,一些可行的方法。 -Drun.profiles=dev 版本是我尝试过的版本,它有效。谢谢!【参考方案2】:

在最新版本的 IntelliJ IDEA 中,只需在配置中选择“远程”选项并填写您的主机。然后将 JVM 命令行参数复制到远程 JVM,就像Philippe Simo 的答案中描述的那样。

【讨论】:

以上是关于无法使用 intelliJ Idea 打开 Spring Boot 调试的调试器端口的主要内容,如果未能解决你的问题,请参考以下文章

IDEA Intellij 打开springboot项目 配置文件无法出现输入提示

无法解决“此版本的 IntelliJ IDEA 的 Android 支持插件无法打开此项目,请使用 4.1 或更高版本重试。”

使用IntelliJ IDEA创建Spring Boot项目

IntelliJ IDEA 无法正确识别 Module

错误记录Mac 中 IntelliJ IDEA 运行 Python 程序报错 ( “Python“ 因为出现问题而无法打开 )

Intellij Idea Maven“无法重新连接”错误