项目中最近引入了三方jar,此jar有逻辑bug,无源码,需增加非空判断,更新其中一个class类
第一步:使用反编译工具JD-GUI打开jar包
找到要修改的类
FIle->save(保存class的java文件)
最早一开始我没有使用JD-GUI工具,我是在idea里直接反编译看到的源码,ctrl+a复制,ctrl+v粘贴到新建的xx.java文件中来完成源码保存的,但此源码在javac编译的时候会遇到类型转换异常、找不到符号之类的错误,最后还是乖乖用JD-GUI工具来反编译保存源码
第二步:将java源码文件拖进idea
简单编辑,修改逻辑,保存文件
此处有一个坑点:JD-GUI工具反编译的源码,在遇到有双重foreach的时候丢失了第二个foreach的逻辑,好在javac的时候有符号错误的报错,我再复制了一下idea中反编译的细节更多的源码,把逻辑补全了,最后顺利编译成功。
提醒大家最好还是把idea反编译的内容与gui反编译的内容做一下比对,以免内容丢失。
第三步:执行javac编译
若需编译的java文件有import相关类,则javac编译的时候需指定相关jar路径
比如文件中引入了如下类

最低0.47元/天 解锁文章
9万+

被折叠的 条评论
为什么被折叠?



