市面上的 Java 字节码工具虽然不少,但是都不够完善,要么只支持查看,要么只有部分功能,还有的工具多年不更新了,传统且稳定的修改 class 的方式还是反编译再修改再编译,但是有时我们需要直接修改字节码还需要用字节码库,比如 ASM 和 javassist 等。
而最流行的字节码库 ASM 却没有官方的编辑器,于是我花了 3 周空闲时间写了一款 IDEA 插件: VisualClassBytes ,功能相对完善,可以直接修改字节码。
首先在插件市场安装 VisualClassBytes
然后在 class 文件( jar 内 class 亦可)上 右键->VisualClassBytes 可打开字节码编辑器
左侧的 Class Info 节点,Interface 节点,Inner Class 节点和 Field 节点,可以修改其访问权限,名称和描述符等信息,修改完后点击左侧下角的保存按钮可保存 class 到磁盘生效。
选择 Method 节点,可看到右侧有 Code 区、LocalVariable 区、Exception 区和 LineNumber 区,可分别修改字节码指令,本地变量表、异常表和行号表。
源码地址: https://github.com/Liubsyy/VisualClassBytes
欢迎交流!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.