Java agent 使用
一、入口
public class ClassAgentApplication {
public static void premain(String agentArgs, Instrumentation inst) {
System.out.println("premain");
}
public static void agentmain(String agentArgs, Instrumentation inst){
System.out.println("agentmain");
}
}
二、打包
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<!-- 生成包含依赖的jar包 -->
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>${project.artifactId}-${project.version}-agent</finalName>
<appendAssemblyId>false</appendAssemblyId>
<archive>
<manifestEntries>
<Premain-Class>com.chenjiacheng.jacoco.ClassAgentApplication</Premain-Class>
<Agent-Class>com.chenjiacheng.jacoco.ClassAgentApplication</Agent-Class>
<Can-Redefine-Classes>true</Can-Redefine-Classes>
<Can-Retransform-Classes>true</Can-Retransform-Classes>
</manifestEntries>
</archive>
</configuration>
<executions>
<execution>
<id>assemble-all</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
执行命令: mvn clean install
三、使用
java -javaagent:'~/path/${agentfile}' -jar ${application_jar}