当前位置: 首页 > 知识库问答 >
问题:

如何用IntelliJ IDEA社区版调试spring-boot应用程序?

梁盛
2023-03-14

我在IntelliJ IDEA community Edition上调试Java spring-boot应用程序时遇到了困难。主要的问题是,IDE不会在断点上停止,即使程序确实通过断点执行。我怎样才能使智能的想法停止在断点上?

Maven配置,命令为:spring-boot:run。在启动之前,我构建项目。

共有1个答案

公英哲
2023-03-14

tldr:您可以尝试像这样调整命令行:

spring-boot:run -Dspring-boot.run.fork=false

说明:

在调试模式下运行应用程序时,IntelliJ调试器附加到它自己启动的Java进程(通过将适当的参数-agentlib:jdwp等附加到Java命令行)。

接下来,如果不确定JVM是否已分叉,可以检查操作系统中的进程列表,例如在MacOS和*nix下,可以使用ps aux grep java。Java进程通常有一个巨大的参数列表,其中大部分是类路径。正在运行的实际应用程序位于命令行的末尾。如果JVM是分叉的,您将有一个进程运行Maven目标,另一个进程运行Spring应用程序。那么您的调试器将连接到您不感兴趣的进程,您的断点将无法工作。

要停止spring-boot:run进行分叉,可以使用上面的fork参数。

 类似资料:
  • 我需要你的帮助,请理解调试一个maven应用程序使用Wildfly和Intellij的想法。 谢谢,

  • 我的webapp运行良好,我想通过Eclipse调试它。 那么当启动我的远程Java应用程序调试器时,我应该监听哪个端口呢?我的webapp上是否有一个设置我必须设置以启用调试?

  • 我在spring应用程序上工作,需要逐步通过一个控制器方法,看看它是如何工作的。我在eclipse中工作,并使用命令构建我的应用程序。 如何在调试模式下运行它?

  • 我需要测试旧的SpringBootJava应用程序(SpringBoot 1.2.7、Java1.8版本),我不想更改Spring版本(因为应用程序非常庞大,然后我必须对代码进行大量重构)。 我想将不同的表列类型应用于桌面应用程序的输入,并测试该应用程序是否正确确定它们。 但问题是,由于旧版本的Spring,我无法提取@ExtendWith(SpringExtension.class),@Exte

  • 问题内容: 我正在开发spring app,需要逐步执行控制器方法以了解其工作方式。我正在日食中工作,并使用命令构建我的应用程序。 如何在调试模式下运行它? 我试过了,但这只是调试日志,不是调试模式 我试过了-这给了我关于任务的信息,我看到了选项,但是当我运行 应用程序无法启动 问题答案: 运行应用程序后,应用程序将被挂起,直到将调试器连接到正在侦听的端口(端口5005)。