😊 @ 作者: 一恍过去
🎉 @ 主题: IDEA通过agentlib实现远程调试Java项目(SpringBoot)
⏱️ @ 创作时间: 2022年03月14日
目录
- 前言
- 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
在Run/Debug Configuration
页面,选择Remote JVM Debug
并且设置JVM参数
将以下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启动调试工具后,通过断点,就可以对远程的项目进行调试工作