# easy-bytecode **Repository Path**: xsxgit/easy-bytecode ## Basic Information - **Project Name**: easy-bytecode - **Description**: 一款更简单的字节码工具 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: https://gitee.com/xsxgit/easy-bytecode - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 2 - **Created**: 2023-03-04 - **Last Updated**: 2023-10-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: ByteCode, Java, java-util ## README ## 更新说明 master分支将作为稳定版本发布,develop分支将会不定期进行更新,欢迎大家提供宝贵意见 ## 项目概述 easy-bytecode是一款更简单的字节码工具,无需额外提供agent,便能实现类的修改,进一步简化调用,使得操作字节码就像调用普通方法一样简单 ## 当前版本 v1.0.0 ## 使用环境 jdk 1.8+ ## 项目特性 - 简单易用 - 无需额外提供agent ## maven坐标 ```maven wiki.xsx easy-bytecode 1.0.0 ``` ## 安装教程 ```cmd mvn clean install ``` ## 快速体验 以修改方法为例:在指定位置插入代码 ```java // 参数依次为:类名称,方法名,方法参数类型,源代码行数,待添加代码 BytecodeUtil.getMethodHandler().insertAt(BytecodeTest.class.getName(),"getId",null,33,"System.out.print(\"hello easy-bytecode\");"); ``` 获取更多使用示例,可参考[示例](https://gitee.com/xsxgit/easy-bytecode/tree/master/src/test/java/wiki/xsx/core/bytecode) ## 核心方法 | 方法 | 说明 | |--------------------------------------|------------------| | BytecodeUtil.getMethodHandler() | 获取类助手(类相关) | | BytecodeUtil.getFieldHandler() | 获取属性助手(属性相关) | | BytecodeUtil.getConstructorHandler() | 获取构造方法助手(构造方法相关) | | BytecodeUtil.getMethodHandler() | 获取普通方法助手(普通方法相关) | | BytecodeUtil.reset() | 重置(还原)修改 | 获取更多使用方法,可查看[API](https://apidoc.gitee.com/xsxgit/easy-bytecode) ## 典型案例 当线上测试环境出现问题,无法进行debug,且本地无法复现只能大概知道错误位置时,可使用本工具进行临时代码修改,帮助排查问题 ## Dromara 成员项目

为往圣继绝学,一个人或许能走的更快,但一群人会走的更远。