在学习和开发JAVA项目中,我们经常会用到第三方提供的一些jar。使用这些第三方工具包,可以提高我们开发的效率,缩短开发的时间。有的第三方工具,提供具体的使用说明和源代码,有时有的却不提供源代码,使用说明也不是很具体,这对我们使用就非常不方便。

  有道是,知其然才知其所以然。有时候,我们必须读取jar里的打包的类。而有时还有可能要对它进行小量修改,使之适用于自己的非凡需求。

前期预备
  Java反编译工具:
  JGUI  http://pan.baidu.com/s/1o6xCtsQ
  压缩工具:
  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达到我们的目的。

不需要在命令行编译,将项目反编译成.java后将整个工程导入到Eclipse中,直接在Eclipse中查看.class文件

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

  替换原来的jar。再进行最后一次测试。

将JAR包反编译,修改后重新打包(转)的更多相关文章

  1. 使用 DJ Java Decompiler 将整个jar包反编译成源文件

    使用 DJ Java Decompiler 将整个jar包反编译成源文件 所使用的软件是 DJ Java Decompiler 3.9. 下面是一个有用的参考文档,说明如何批量编译 http://ww ...

  2. 大富豪APK安卓客户端的反编译修改和重新打包

    大富豪APK安卓客户端的反编译修改和重新打包 修改安装我们需要几个工具 DFH_3.4.X  (用于修改客户端) dnsPy        (用于修改.dll文件) 大富豪加解密.exe  ( 用于加 ...

  3. java根据jar包反编译后修改再打包回jar的做法

    1. 得到一个待要修改的jar包 2. 我的环境是windows,然后解压这个jar包,得到一堆class文件,这时候就找到你需要的那个class文件 3. 我首先是使用jd-gui工具看一下这个cl ...

  4. Jar包进行反编译,修改后重新打包

    在学习和开发JAVA项目中,我们经常会用到第三方提供的一些jar.使用这些第三方工具包,可以提高我们开发的效率,缩短开发的时间.有的第三方工具,提供具体的使用说明和源代码,有时有的却不提供源代码,使用 ...

  5. IDEA修改jar包中class文件后重新生成jar包

    一.背景 最新想要修改rebeyond大佬的冰蝎项目,特地去网上搜索如何修改jar包中的源码再替换回去的方法,但由于现在的一些文章写的太烂,导致走了很多弯路,因此写下这篇快速使用IDEA修改源码并替换 ...

  6. 【转】Java-----jar反编译修改重新打包

    原文链接:http://blog.csdn.net/hekewangzi/article/details/44676797 一.使用反编译工具JD-GUI(JD-GUI相关操作见Java-----反编 ...

  7. 破解 jar 包之直接修改 .class 文件方式

    一.常规 JAVA 软件破解流程 先讲一下常规jar包的破解流程. 1. 快速定位.          1) 通过procmon监控相关软件,查看程序都访问了些啥.         2) 用jd-gu ...

  8. Java-----jar反编译修改重新打包

    http://blog.csdn.net/hekewangzi/article/details/44676797 一.使用反编译工具JD-GUI(JD-GUI相关操作见Java-----反编译clas ...

  9. War包反编译过程

    War包反编译过程 很多人可以将项目编译为war发布,可是有时候得到war确看不到源码.今天分享下war反编译的过程: 1.首先下载一个小工具,在http://jd.benow.ca/官网下载jd-g ...

随机推荐

  1. 使用bulkload向hbase中批量写入数据

    1.数据样式 写入之前,需要整理以下数据的格式,之后将数据保存到hdfs中,本例使用的样式如下(用tab分开): row1 N row2 M row3 B row4 V row5 N row6 M r ...

  2. kvm常用操作

    安装一些虚拟化的组件 yum -y install kvm python-virtinst libvirt bridge-utils virt-manager qemu-kvm-tools virt- ...

  3. 理解 neutron(15):Neutron linux-bridge-agent 创建 linux bridge 的简要过程

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  4. mysql小技巧

    将一列值赋予另一列 会遇到新增一列, 需要用其他列的值来初始化这一列 或者根据业务条件把某行的某列值直接赋予到其他列. 行号 列1 列2 1 aaa ddd 2 bbb ccc UPDATE 表 SE ...

  5. 用ajax查询天气

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <script src ...

  6. TCP/IP协议(一)网络基础知识

    参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述).OSI参考模型.网络概念的本质.网络构建的设备等 ...

  7. Doctype作用?严格模式与混杂模式如何区分?它们有何意义?

    怪异模式和严格模式(译注:一般称为标准模式:Standards Mode,下文中的严格模式都可以理解为标准模式)是浏览器解析CSS时的两种‘模式’.这篇文章将简单阐述这两种模式之间的差异. 译注:一个 ...

  8. [LeetCode] Basic Calculator II 基本计算器之二

    Implement a basic calculator to evaluate a simple expression string. The expression string contains ...

  9. 如何在Microsoft Edge浏览器中添加一个Hello World插件

    注:本文提到的代码示例下载地址> How to add a Hello World extension to Microsoft Edge Microsoft Edge 随着Win 10一起推出 ...

  10. FPGA与simulink联合实时环路系列——实验三 按键key

    实验三 按键key 实验内容 在FPGA的实验中,经常涉及到按键的使用,按键是必不可少的人机交互的器件之一,在这些实验中,有时将按键的键值读取显示到数码管.LCD或者是通过串口传送到PC的串口助手上进 ...