Instrumentation 介绍与使用

Instrumentation 是Java提供的一种能够在程序运行时检查和修改类定义的技术。它允许开发者创建代理程序(Agent),通过 `-javaagent` 参数指定jar文件启动。Instrumentation 常用于类的动态修改和监控,例如在XMind、IDEA破解和SkyWalking等场景。要创建一个Instrumentation代理,需要实现`java.lang.instrument`包的接口,定义Transformer类,并配置MANIFEST.MF文件。完成配置后,使用maven打包成agent.jar,并通过运行命令启用。
摘要由CSDN通过智能技术生成

 

 

使用 Insrumentation ,开发者而言构建一个独立于应用程序的代理程序(Agent),检车和协助运行在JVM 上的程序,甚至可以替换和修改某些类的定义。简单的来说 开发者使用Instrumentation 可以实现一种虚拟机级别的AOP实现。

Instrumentation 的最大作用,就是类定义动态改变和操作。 程序运行时,通过 -javaagent 参数指定一个特定的 jar 文件来启动  Instrumentation 的代理程序。 其实这个对很多人来说不陌生 xmind, idea 永久破解的过程中,都有使用  -javaaegent ,然后指定一个 jar 文件。甚至一些监控软件也用了,例如 skywalking。

看看怎么用

java.lang.instrument 包的具体实现。

做个代理类

import java.lang.instrument.Instrumentation;

public class Agent {
    /**
     * 编写一个 Java 类 包含
     * public static void premain(String agentArgs, Instrumentation inst);  [1]
     * public static void premain(String agentArgs); [2]
     * @param options
     * @param ins
     */
    pu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangxiaoming

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值