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:'~/agent/${agentfile}' -jar ${application_jar}