当前位置:   article > 正文

如何修改jar包并重新打包_修改jar包里的class文件并重新打包

修改jar包里的class文件并重新打包

1、百度一圈没有落地的详细方法

如何修改jar包并重新打包?在网上百度谷歌了一圈,发现几种方案,有的说用工具去改比如什么jclasslib、asm、还有说字节码插桩的等的,尝试了一下,都不是很方便,有的方法根本就不行。

2、直接用android studio或者eclipse就可以做到

直接用android studio或者eclipse就可以做到修改jar包并重新打包。

思想原理是啥?

建立一个库工程,引用要修改的jar、在android studio或者eclipse中打开你要修改的类文件,可以很方便的找到类的源码、在工程中新建相同的类,将对应源码复制过去、然后删除jar中对应的class文件、修改源码后,重新打包就可以生成新的jar包了。

具体怎么操作呢?
1、首先建立一个工程并且引用jar

你要修改什么jar,就建立什么库工程(库工程就是可以直接生成jar的)。比如我要修改一个android用到的jar,那我就建立一个android工程,为什么要这么做?因为jar包里面有引用到android 中的api。如果你是java ee里面的jar,那就建立一个java ee项目。

2、找到你要修改的jar中类的源码

比如我要修改a.jar包中B类文件里面对应的c函数,那我就找到这个B.class文件啊,双击就可以打开看到java源码了(这是android studio或者eclipse的好处,不需要另外重新安装什么jadx\jdgui软件是不是),B文件的源码直接复制出来,在你的工程中新建一个相同包名类名的文件B.java,粘贴源码。

3、删除原来的class文件

这时候删除掉原来jar中的class文件。也就是删除a.jar包中B.calss文件,这一步很简单,直接用7zip打开jar,删除掉B.calss文件就可以了(windows 7zip, Mac the unarchiver)

4、改java源码
1、修复语法错误

这一步先修复B.java文件的语法报错。往往就是混淆后,变量名混在一起报错了。不要怕,很简单搞定他。常见的例子就是a a=new a();这样的句子,报错说a类型不对,或者说a找不到。那怎么办?读读上下文代码嘛,看下这个a到底指向哪个类,然后把a换成全路径就好了。

2、加入你想要的内容

改修改B.java文件,加入你想要的内容

5、重新编译打包成新jar

改好之后直接重新打包就可以了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/626738
推荐阅读
相关标签
  

闽ICP备14008679号