如何在与代码中调试Java专家spring-boot应用程序?

我能够调试一个简单的Java hello世界。第一步是使用 “编译”。我查找了如何使用maven完成相同的操作,并发现了 http://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/run-debug.html,但这些说明是用于运行应用程序并等待调试器连接。javac -g

我也尝试在中使用.调试器抱怨它无法在根目录中找到文件,但它正在运行。尽管调试器正在运行,但应用程序不响应 HTTP 请求。target/classesclasspathlaunch.json/

是否有命令来编译应用程序并生成调试器能够成功运行?mvnjavac -g.class


答案 1

您将只能使用 vs 代码进行远程调试,因此一个简单的命令将是 ,它将执行与添加以下选项相同的操作:mvnDebug spring-boot:runmvn spring-boot:run

-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y

然后你可以从vs代码附加,一个示例launch.json看起来像这样:

{
 "version": "0.2.0",
  "configurations": [

    {
      "type": "java",
      "name": "Debug (Launch)",
      "request": "launch",
      "mainClass": "",
      "args": ""
    },
    {
      "type": "java",
      "name": "Debug (Attach)",
      "request": "attach",
      "hostName": "localhost",
      "port": 8000
    }
  ] 
}

,您可以从调试面板中选择运行。Debug(Attach)


答案 2

假设您已经通过Microsoft调试安装了收集包Java Extension Pack,Maven Spring Boot应用程序似乎可以开箱即用

从项目的根目录启动并“开始调试”。有多种方法可以启动 debbugger - 最简单的方法是按 F5,如果询问,请选择 Javacode

在标称条件下,这将触发以下步骤:

  1. 您的应用程序已编译为类文件
  2. 它查找并启动应用程序的功能 - 其中应包括mainSpringApplication.run()
  3. 应用程序运行(启用断点),并将日志输出发送到“终端”面板。

相关链接:


推荐