Jar包进行反编译,修改后重新打包
在学习和开发JAVA项目中,我们经常会用到第三方提供的一些jar。使用这些第三方工具包,可以提高我们开发的效率,缩短开发的时间。有的第三方工具,提供具体的使用说明和源代码,有时有的却不提供源代码,使用说明也不是很具体,这对我们使用就非常不方便。
有道是,知其然才知其所以然。有时候,我们必须读取jar里的打包的类。而有时还有可能要对它进行小量修改,使之适用于自己的需求。
一、准备
Java反编译工具:
JD-GUI:http://jd.benow.ca/
  
解压工具:
WinRAR
二、反编译
1、使用WinRAR解压工具将Jar包解压到指定位置。
2、使用Java反编译工具JD-GUI将.class文件反编译为Java文件。
3、将反编译后的Java文件设为项目的源文件目录。将jar,及jar所需要的其它lib,作为libraries加入项目中,这样可以保证我们的Java文件可以编译。
4、通过反编译的Java文件,可能还有错误,不能编译通过,在不影响作者原始意图的前提下,我们必须对它进行小量修改,保证可编译通过。保证Java文件可以编译通过后,我们再在其基础上进行修改,使之符合自己的需求。
5、编译修改后的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包进行反编译,修改后重新打包的更多相关文章
- 大富豪APK安卓客户端的反编译修改和重新打包
		大富豪APK安卓客户端的反编译修改和重新打包 修改安装我们需要几个工具 DFH_3.4.X (用于修改客户端) dnsPy (用于修改.dll文件) 大富豪加解密.exe ( 用于加 ... 
- 提取aar 包中的jar包,反编译再替换成新的aar
		参考了 http://blog.csdn.net/hekewangzi/article/details/44676797 针对aar包,增加一些说明 aar包本质应该是zip文件.可以用360解压 ... 
- 将JAR包反编译,修改后重新打包(转)
		将JAR包反编译,修改后重新打包(转) 在学习和开发JAVA项目中,我们经常会用到第三方提供的一些jar.使用这些第三方工具包,可以提高我们开发的效率,缩短开发的时间.有的第三方工具,提供具体的 ... 
- dnSpy进行反编译修改并编译运行EXE或DLL
		dnSpy对目标程序(EXE或DLL)进行反编译修改并编译运行 本文为原创文章.源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称.作者及网址,谢谢! 本文使用的工具下载地址为: h ... 
- Java Jar源码反编译工具那家强
		本文介绍下Java Jar常见的反编译工具,并给出使用感受. 反编译JAR能干什么: 排查问题.分析商业软件代码逻辑,学习优秀的源码思路. JD-GUI 下载地址:http://java-decomp ... 
- 客户的一个紧急bug,我用了两种方式进行 C# 反编译修改源码
		一:背景 1. 讲故事 周五下午运营反馈了一个紧急bug,说客户那边一个信息列表打不开,急需解决,附带的日志文件也发过来了,看了下日志大概是这样的: 日期:2020-11-13 12:25:45,92 ... 
- Android反编译odex然后重新打包
		#Android反编译odex然后重新打包 最近不知道怎么回事,突然把我那刷了氧OS的root了,然后就开始好奇起来氢OS所带有的那些本地化的东西,比如通话录音就是典型的一个之一.其中也做了很多的尝试 ... 
- vue打包时,assets目录 和static目录下文件的处理区别(nodeModule中插件源码修改后,打包后的文件应放在static目录)
		为了回答这个问题,我们首先需要了解Webpack如何处理静态资产.在 *.vue 组件中,所有模板和CSS都会被 vue-html-loader 及 css-loader 解析,并查找资源URL.例如 ... 
- 【转】Java-----jar反编译修改重新打包
		原文链接:http://blog.csdn.net/hekewangzi/article/details/44676797 一.使用反编译工具JD-GUI(JD-GUI相关操作见Java-----反编 ... 
随机推荐
- 【Head First Servlets and JSP】笔记
			1.谈到服务器的时候,可能是指物理主机(硬件),也可能是指Web服务应用(软件). 2.谈到客户的时候,通常指人类用户,或者是浏览器应用,或者两者都包括,浏览器应用做些什么?发送请求.解释HTML和呈 ... 
- ubuntu16.04 虚拟机 安装win7/win10
			http://www.xitongcheng.com/jiaocheng/xtazjc_article_26588.html https://blog.csdn.net/sunyao_123/arti ... 
- ddt运行报错AttributeError: type object 'TestLogin' has no attribute 'test_login'
			源代码: #!usr/bin/python3 # -*- coding:utf-8 -*- # @Time: 2018/12/17 下午2:07 # @File: do_excel.py # @Sof ... 
- 单片机、嵌入式CAN通信原理
			工作原理: 单片机里内置了一个FIFO(先进先出)芯片,需要发送什么报文,就往这个芯片里写.比如有两个单片机作为CAN节点,A节点往自己的FIFO中写CAN报文,B节点往自己的FIFO中写CAN报文. ... 
- React-Navigation与Redux整合详解
			本文转自:文章地址:http://blog.csdn.net/u013718120/article/details/72357698 继react-navigation发布已经过去半年的时间,想必Re ... 
- AtCoder Regular Contest 102
			AtCoder Regular Contest 102 C - Triangular Relationship 题意: 给出n,k求有多少个不大于n的三元组,使其中两两数字的和都是k的倍数,数字可以重 ... 
- UOJ34 多项式乘法(非递归版)
			本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ... 
- note——《Tableau商业分析一点通》
			为了更好地发掘各领域的数据价值,且能对数据进行精确分析及可视化,掌握资料的脉动,做出正确的决策 人们需要一种工具:能够快速灵活地连接和整合数据,提供简单的方式实现从不同的角度去观察研究数据,计算和展示 ... 
- legend---十二、js中的js语句和函数和ready函数的关系是什么
			legend---十二.js中的js语句和函数和ready函数的关系是什么 一.总结 一句话总结: 函数和全局变量不必放到ready函数中 语句(调用函数和全局变量)的必须放到ready函数中 1.在 ... 
- python学习笔记(time.time方法)
			time.time()方法 返回的是 1970纪元后经过的浮点秒数 比较简单 总结如下: #!/usr/bin/env python # -*- coding: utf_8 -*- import ti ... 
