前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java agent开发

java agent开发

作者头像
IT云清
发布2021-12-06 14:14:06
9770
发布2021-12-06 14:14:06
举报
文章被收录于专栏:IT云清

本文主要记录下如何创建一个简单的java Agent,并配置运行。

1.创建Agent类

代码语言:javascript
复制
package com.java4all.grouth.agent;

import java.lang.instrument.Instrumentation;

/**
 * @description: java Agent
 * @author: IT云清
 */
public class MyAgent {

    public static void premain(String agentArgs, Instrumentation instrumentation) {
        System.out.println("This is MyAgent,args:"+agentArgs);
    }

}

2.MANIFEST.MF 配置文件

这里在src/main/resources/META-INF/下创建一个MANIFEST.MF文件,指定Agent class和版本相关信息。注意最后一行需要一个空行,否则idea会报错。

代码语言:javascript
复制
Manifest-Version: 1.0
Premain-Class: com.java4all.grouth.agent.MyAgent
Can-Redefine-Classes: true
Can-Retransform-Classes: true

3.打包配置

在pom.xml中配置打包信息

代码语言:javascript
复制
  <build>
      <finalName>my-agent</finalName>
      <plugins>
          <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
          </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <archive>
                        <index>true</index>
                        <manifestFile>
                            src/main/resources/META-INF/MANIFEST.MF
                        </manifestFile>
                        <manifest>
                            <addDefaultImplementationEntries/>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
    </plugins>
  </build>

4.打包

代码语言:javascript
复制
mvn clean package

会生成一个jar

在这里插入图片描述
在这里插入图片描述

5.应用

这里以idea为例,配置VM options参数

在这里插入图片描述
在这里插入图片描述

参数格式为:-javaagent:/Agent的jar路径=参数

例如:

代码语言:javascript
复制
-javaagent:/Users/ityunqing/mycode/grouth/target/my-agent.jar=IT云清

项目启动后,就会看到,在main方法执行前,执行了premain方法。

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/01/22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.创建Agent类
  • 2.MANIFEST.MF 配置文件
  • 3.打包配置
  • 4.打包
  • 5.应用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档