jar包修改并重新打包

由于需要修改下第三方jar包里面的一些逻辑,自己没有源码,使用下面的方法完成了任务:

1、首先使用反编jd打开jar包,以okhttp-2.6.0.jar为例:


通过菜单保存为Java源码,然后修改代码,修改完成后

javac -classpath okhttp-2.6.0.jar Cache.java 编译为class文件,生成Cache.class,然后用压缩工具打开jar包,把修改好的.class拖到相应的位置


ok,完成了


注意jd打开的文件可能跟源码还是有区别的,所以导出的源码可能有错误,另外如果同时修改了几个文件,并且几个文件之间存在依赖关系,例如A.java 调用了B.java中的函数,如果修改了B.java中该函数的参数,则需先编译B.java并按上面的方法重新打成jar包,然后用这个新的jar作为-classpath扁你A.java,否则会提示方法不对


转自:http://blog.csdn.net/new_abc/article/details/52243772