# agentDemo **Repository Path**: masterkgw/agent-demo ## Basic Information - **Project Name**: agentDemo - **Description**: javaAgent 使用 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-01-27 - **Last Updated**: 2022-01-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # agentDemo #### 介绍 JavaAgent探索与实践 JavaAgent是什么 JavaAgent 是从JDK 1.5 开始引入的(引入java.lang.instrumen 包),也可以叫做Java代理,我们可以使用agent技术构建一个独立于应用程序的代理程序(即为Agent),用来协助监测、运行甚至替换其他JVM上的程序,有了这样的功能,开发者就可以实现更为灵活的虚拟机监控和Java类操作了,这样的特性实际上提供了一种虚拟机级别的AOP实现方式,使得开发者无需对应用程序做任何升级和改动,就可以实现AOP功能。 JDK1.5版本时,只支持静态代理,即在应用程序启动时执行main方法之前,会先执行agent代码,因此,每次agent代码有版本升级,我们需要重启应用程序才能使新版本的agent代理生效,显然,这种方式不是最理想的。而从JDK1.6开始,我们便可以通过Sun公司提供的tools.jar包下AttachApi来实现对运行中的应用程序加载agent代理,而无需应用程序重启。 ![输入图片说明](https://images.gitee.com/uploads/images/2022/0127/103254_452ef5d2_483776.png "屏幕截图.png")