背景
有时候需要研究某个jar类库某个功能的实现逻辑,或者在没有源码的情况下,紧急修复某个bug的时候,需要对jar进行反编译修改。
反编译基础知识
Kindle书:Java虚拟机字节码:从入门到实战
反编译工具
Recaf【推荐:5星】
github:
https://github.com/Col-E/Recaf
Recaf是易于使用的现代Java字节码编辑器,支持三种反编译器,可直接编辑字节码,并对反编译的代码重新编译。
支持Jar或class
编辑字节码后自动更新StackMapTable
Tips:字节码编辑后,有时候需要按多次Ctrl+S才会保存。