如何修改 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

你可能感兴趣的:(如何修改 jar 包中的 class 文件内容)