修改jar包中class文件并重新打包

步骤

  1. 使用jd-gui查看jar文件或者把jar文件放到AndroidStudio中查看需要修改的X.class文件代码,复制出代码,在AndroidStudio中新建同名的X.java文件(新建javaLibModule),复制X.class文件中代码。
  2. 同步AndroidStudio工程,确保工程正确运行,并且X.java文件中没有引入新的包。
  3. 解压jar包
    先进入X.jar所在目录
    jar -xvf X.jar
  4. 从AndoridStudio的build文件夹中找出来X.class文件,拷贝到解压后的jar包中
  5. 重新打jar包
    jar -cvf X.jar ./
  6. 替换META-INF/MANIFEST.MF文件,到打包后的X.jar包中。用上一个命令打出的包,MANIFEST.MF文件中是没有入口类的信息的,需要更新正确的清单文件
    jar umf META-INF/MANIFEST.MF X.jar
  7. 测试看是否能正常运行

补充

jar 命令的一些操作

  • 把A和Bclass文件加入到class.jar包中
    jar cvf classes.jar A.class B.class
  • 使用META-INF/MANIFEST.MF清单文件,将bytime目录内的所有文件打包成class.jar
    jar cvfm classes.jar META-INF/MANIFEST.MF -C bytime/ .
  • 更新META-INF/MANIFEST.MF清单文件
    jar umf META-INF/MANIFEST.MF X.jar

ByTime修改记录

  • 工程:ByTimeProject
  • Pictrue修改了文字大小
    修改Picture时,需要把Bean中class全部拷贝出来,还要一个Base64.class文件。
  • service/OrderProByTime修改了地址可添加
  • 修改了service/OrderProByTime,ftlNum数量为imgNum
  • 修改service/OrderProByTime,orderProPicuture.getImg(personD, lineTimes.get_times(orderDataSource[0], imgNum, 1)改成时间不改变,直接输入显示
  • Picture中getImg删除了手机号,修改了生成图片的目录为C。
  • Times中get_times,增加了timeRand
  • OrderProByTime中getImg增加了filePath参数
  • ByTime10电话号码去掉了;一张照片一个时钟点数。
  • ByTime9,手机序列号IMEM和电话去掉 时间放在地址的下面。

你可能感兴趣的:(修改jar包中class文件并重新打包)