欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

更新Jar包中的文件

程序员文章站 2022-04-30 21:06:49
...

遇上需要重写第三方库代码的情况, 要替换库jar包中的文件, 特此记录一下
Android Studio Gradle第三方库文件目录, macOS:
/Users/[用户名]/.gradle/caches/modules-2/files-2.1/xxx

项目中编译好的class文件目录:
[project目录]/build/tmp/expandedArchives/xxx

下面是转的:http://blackwing.iteye.com/blog/1545670

打包了个fat jar,后来程序作了小修改,如果重新打包一个fat jar再上传服务器实在麻烦,而如果能只把更改的class文件放到原来jar包替换相应文件,则简便很多。 jar命令可以替换jar包对于文件,但需要点小技巧。一般替换(增加)jar包根目录下的文件,用到的命令是:

jar uvf myjar.jar ClassToAdd.class  

就能把ClassToAdd.class添加到myjar.jar包根目录下。但通常,我们的包都是有多层目录的,这时就需要做点更改。例如,我要更新jar包下:com.blackwing目录下的ClassToAdd.class文件,则命令改为:

jar uvf myjar.jar com/blackwing/ClassToAdd.class  

记得在运行这条命令前,需要在当前文件夹下建立: com/blackwing文件夹,并且把类ClassToAdd.class放到这里,则可以更新jar包中相应目录的类。