😊 @ 作者: 一恍过去

🎉 @ 主题: IDEA通过agentlib实现远程调试Java项目(SpringBoot)


⏱️ @ 创作时间: 2022年03月14日


给idea配置Java idea配置javaagent_java


目录

  • 前言
  • 1、IDEA添加配置
  • 2、启动jar包
  • 3、启动IDEA远程工具


前言

什么是agentlib:
agentlib是Java虚拟机(JVM)提供的一个选项,用于加载和运行Java代理(Agent)。代理是一种在运行时修改或监视Java应用程序行为的工具,可以用于性能分析、调试、监控等目的。

agentlib选项用于加载Java代理库,并将其附加到正在运行的Java应用程序的JVM中。代理库可以是使用Java编写的,也可以是使用其他语言编写的,并使用Java本机接口(JNI)与JVM交互。

使用agentlib选项,可以在Java应用程序启动时指定代理库的路径,并传递一些可选的参数。比如:
java -agentlib:agentpath=<path_to_agent_library>[=<options>] <main_class>

其中,<path_to_agent_library>是代理库的路径,<options>是可选的代理库参数,<main_class>是要运行的Java应用程序的主类。

通过使用agentlib选项加载代理库,代理可以通过修改字节码、注入代码、拦截方法调用等方式来监控、分析或修改Java应用程序的行为。代理可以捕获方法调用、收集性能数据、进行内存分析等,从而提供有关应用程序性能和行为的详细信息。

IDEA中集成agentlib基本步骤如下:

  • 打开IntelliJ IDEA,并打开您的Java项目。
  • 在项目结构中,选择要应用agentlib的运行配置。这可以是您要运行或调试的主类或测试类。
  • 在菜单栏中,选择"Run"(或"Debug")-> “Edit Configurations”。
  • 在弹出的对话框中,选择您要编辑的运行配置。
  • 在运行配置编辑器的"VM options"(或"Configuration" -> “VM options”)字段中,添加agentlib选项和相关的代理库路径和参数。
  • 运行或调试您的项目时,agentlib选项将被应用,并将相应的代理库加载到JVM中。

1、IDEA添加配置

在IDEA顶部点击Add Configuration

给idea配置Java idea配置javaagent_给idea配置Java_02


Run/Debug Configuration页面,选择Remote JVM Debug并且设置JVM参数

给idea配置Java idea配置javaagent_给idea配置Java_03


将以下JVM参数加入到IDEA中:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

5005表示本地IDEA与远程服务通信的端口,如果本地端口冲突则进行修改。

2、启动jar包

通过命令启动jar包,demo.jar为实际的项目名称

java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 demo.jar

3、启动IDEA远程工具

给idea配置Java idea配置javaagent_java_04


IDEA启动调试工具后,通过断点,就可以对远程的项目进行调试工作

给idea配置Java idea配置javaagent_intellij-idea_05