jar包替换类

转载 2012年03月30日 23:40:55

在学习和开发JAVA项目中,我们经常会用到第三方提供的一些jar。使用这些第三方工具包,可以提高我们开发的效率,缩短开发的时间。有的第三方工具,提供详细的使用说明和源代码,有时有的却不提供源代码,使用说明也不是很详细,这对我们使用就非常不方便。
   有道是,知其然才知其所以然。有时候,我们必须读取jar里的打包的类。而有时还有可能要对它进行小量修改,使之适用于自己的特殊需求。
  前期准备
   Java反编译工具:
   强烈推荐,小颖JAVA源代码反编译系列专家1.4终极版。
   压缩工具:
   Winrar
  
   (这些工具,都可以通过搜索在网络上找到)
  开始
  1. 将jar包解压
  我们可以使用winrar工具将jar解压到指定目录
  2. 反编译class
   使用 Java 反编译工具,将class文件反编译为java文件。(大多数反编译工具只提供单个class文件的反编译,这里推荐"小颖JAVA源代码反编译"工具,可以反编译一个目录下的所有class文件)
  
  3. 构建项目
   我们将反编译后的java文件设为项目的源文件目录。
   将jar,及jar所需要的其它lib,作为libraries加入项目中,这样可以保证我们的java文件可以编译。
  4. 对反编译的java进行修改
   通过反编译的java文件,可能还有错误,不能编译通过,在不影响作者原始意图的前提下,我们必须对它进行小量修改,保证可编译通过。
   保证java文件可以编译通过后,我们再在其基础上进行修改,使之符合自己的需求。
  
  5. 编译修改的java
   编译修改后的java文件,注意的是,最好只编译修改的单个java文件。
   编译完成后,我们进行测试,保证修改无误。因为JVM会先找寻classes目录下的class文件,并率先加入,这样我们修改编译后的class文件,便是测试时使用的class文件。
   重复这个过程,直至java达到我们的目的。
  6. Jar打包
   将修改生成后的class文件,替换我们将jar解压缩目录下的相应class文件,重新打包生成jar。
   我们可以使用jar命令进行打包,也可以使用winrar工具进行打包。使用winrar工具打包时,要注意选择压缩文件格式为zip,并将生成的压缩包文件的后缀名设置为jar。
   替换原来的jar。再进行最后一次测试。
  总结
   由于Java的跨平台性,使得java的class文件可以进行反编译,我们可以对jar文件进行修改,使之适用于自己的需求。
   对jar文件进行修改,我们必须首先获得jar开发者的同意。
   对jar文件进行修改,首先必须对反编译的java文件比较熟悉。这就必须有良好的代码阅读能力,清楚作者的技术架构和开发设计思想。如果没有把握,最好能与jar开发者联系,提出你的需求。
   对于某些java开发者来说,并不希望将自己辛辛苦苦写的code公布于众,为了避免他人反编译,可以使用混淆器,但也只是增加代码阅读的困难性。如果不是作为商业运用,我们还是希望开发者能够提供源代码,互相学习探讨。

 

将修改生成后的class文件,替换我们将jar解压缩目录下的相应class文件,重新打包生成jar。
   我们可以使用jar命令进行打包,也可以使用winrar工具进行打包。使用winrar工具打包时,要注意选择压缩文件格式为zip,并将生成的压缩包文件的后缀名设置为jar。
   替换原来的jar。

覆盖jar 类 优先级高于jar == Debug jar包 java技巧

在项目中经常用到jar包 但是 jar中的文件 类 都是封装死的  没有办法 Debug  本文 说的是 Debug jar包中的类 和 修改jar包中的配置等 在项目中  相同路径下的 形...
  • x_zcl
  • x_zcl
  • 2016年03月17日 17:48
  • 2556

java开发技巧:对jar包进行再次修改

引言   在学习和开发JAVA项目中,我们经常会用到第三方提供的一些jar。使用这些第三方工具包,可以提高我们开发的效率,缩短开发的时间。有的第三方工具,提供详细的使用说明和源代码,有时有的却不提供...
  • u010863578
  • u010863578
  • 2014年09月30日 16:17
  • 2326

jar包修改并重新打包

由于需要修改下第三方jar包里面的一些逻辑,自己没有源码,使用下面的方法完成了任务: 1、首先使用反编jd打开jar包,以okhttp-2.6.0.jar为例: 通过菜单保存为java源码...
  • new_abc
  • new_abc
  • 2016年08月18日 18:54
  • 10122

总结替换jar包中指定文件的步骤

一: 1定位路径:cd /bestpayserver/project/paycenter-bank 2列出指定文件路径:jar tvf paycenter-bank.jar|grep BocB2b...
  • qq_16485855
  • qq_16485855
  • 2016年06月12日 13:33
  • 2130

Jar命令+7z:创建,替换,修改,删除Jar, war, ear包中的文件

虽然现在已经有各种智能的IDE可以为我们生成jar包,war包,ear包,甚至带上了自动替换,部署的功能。但一定会有那么些时候,你需要修改或是替换jar包,war包,ear包中的某个文件而不是整个重新...
  • u013613428
  • u013613428
  • 2016年06月14日 11:21
  • 5184

使用jar命令替换jar中的一个或多个文件

此过程用于jenkins自动部署中替换jar包的配置文件 jar -uvf rpds.jar BOOT-INF/classes/db.properties PS:BOOT/classes是jar包...
  • ab7253957
  • ab7253957
  • 2017年09月05日 12:43
  • 558

eclipse项目中的jar中的文件直接替换

JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式,JAR 文件非常类似 ZIP 文件——准确的说,它就是 ZIP 文...
  • ldc5306590
  • ldc5306590
  • 2017年03月02日 17:45
  • 986

怎样更新jar包中的某个class文件??

很简单呀~~ jar   -cvf   aaa.jar   test\ttt.class 就可以了。 aaa.jar       |_____test       |       ...
  • studyvcmfc
  • studyvcmfc
  • 2012年07月13日 22:20
  • 12808

查看类在那个JAR包里

  • 2012年03月21日 15:02
  • 3KB
  • 下载

Jar包内的所有类名解析

获取jar包中的类名的类,用以检测不同jar包内是否存在相同名字的类,再次记录备忘。 package cn.letterme.Jar; import java.io.IOException; i...
  • eof_2011
  • eof_2011
  • 2015年01月25日 23:34
  • 1450
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:jar包替换类
举报原因:
原因补充:

(最多只允许输入30个字)