美文网首页
Javaagent技术及Instrumentation(20.6

Javaagent技术及Instrumentation(20.6

作者: 剑道_7ffc | 来源:发表于2020-06-19 16:42 被阅读0次

基本使用

新建MANIFEST.MF,并用插件追加内容

在resources新建META-INF,在META-INF新建MANIFEST.MF,文件内容设置为空

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.1.0</version>
        <configuration>
          <archive>
            <!--自动追加META-INF/MANIFEST.MF -->
            <manifest>
              <addClasspath>true</addClasspath>
            </manifest>
            <manifestEntries>
              <Premain-Class>com.edward.MyAgent</Premain-Class>
            </manifestEntries>
          </archive>
        </configuration>
      </plugin>
    </plugins>
  </build>

新建premain

public class MyAgent {
    /**
     * premain
     * @param args 启动参数
     * @param inst
     */
    public static void premain(String args, Instrumentation inst){
        System.out.println("在执行main方法之前执行");
    }
}

打包

运行

image.png
image.png

源码分析

在jvm启动时加载,优先加载premain(String args, Instrumentation inst)的方法


image.png

相关文章

网友评论

      本文标题:Javaagent技术及Instrumentation(20.6

      本文链接:https://www.haomeiwen.com/subject/rrlvxktx.html