如何修改 jar 包中的 class 文件内容

背景

Android 项目中使用了第三方库,但是对原有的逻辑需要作出一些调整,结合网上找到的一些方法,最终实现了修改 jar 包中的 class 文件内容,操作已十分简单。

具体操作

  1. 直接在 Android Studio 打开项目,如果是 java 项目直接用 IntelliJ IDEA ,两者都可以反编译 jar 中的 class,无需使用 jd-gui。

  2. 在 jar 包中找到要修改的 class,并在项目中创建同包名、文件名的 java 文件。

image.png

如上图所示,我要修改的文件是 cn.cloudwalk.edge.EdgeClient.class 这个文件,所以在项目中创建了同样的一个 java 文件。

  1. 复制 class 文件中代码到 java 文件中,并按照需要修改逻辑。

  2. 重新 build 项目,在 build/intermediates 中找到 java 文件生成的 class。如下图所示,不同的 gradle 版本生成的文件目录可能不一样

image.png
  1. 将 jar 包后缀改为 .zip 并解压,并用新生成的全部 class 文件覆盖掉原来的文件
image.png
  1. 最后,重新 zip 压缩 jar 包文件夹下的内容,修改后缀为 .jar
image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 步骤 使用jd-gui查看jar文件或者把jar文件放到AndroidStudio中查看需要修改的X.class文...
    Allenlll阅读 11,533评论 0 0
  • Android开发中总是会引入第三方的库或者资源,有时候是添加一个jar文件,有时候添加一个aar文件,那么这两种...
    红色海_阅读 773评论 0 0
  • 两者区别: *.jar:只包含了class文件与清单文件,不包含资源文件,如图片等所有res中的文件。 *.aar...
    後来的後来hugh阅读 2,597评论 0 1
  • 前言 前些日子,遇到了一个优化SDK的需求,本地测试优化都很顺利。可是发布到远程以后,通过远程导入jar后就出了问...
    小庄bb阅读 2,899评论 6 0
  • 一、为何要修改Jar文件中代码? 假如项目中用了一个很老的版本的jar包,现在发现有问题,但是🈶联系不到原作者修改...
    放羊娃华振阅读 2,451评论 0 0

友情链接更多精彩内容