如何修改可运行Jar包,如何反编译Jar包
将可运行Jar包,反编译成项目,修改代码,再次编译,打包。
需要工具:jd-gui、myeclipse
具体步骤:
1、使用jd-gui打开原始的Jar包,选择File-->Save All Sources,会生成一个zip压缩包

2、解压这个压缩包,生成一个文件夹,可以看到文件夹里所有的class文件变成了java源码文件。(如果最开始直接解压原始的Jar包,那么解压出来的就是class文件,而不是java源文件)
3、打开myeclipse,新建一个普通的Project项目,将解压后的内容拷贝到项目里。
4、此时编译会报错,因为缺少依赖的Jar包,需要找到相应的包并且导入。那么这些包到底是哪些呢?
使用jd-gui打开最原始的Jar包,在META-IN目录下的maven目录下,有所需要的依赖包。其中pom.properties中记录着Jar包的版本信息,可以直接从maven仓库下载这些包

5、最后,项目重新编译,并且打成Jar包。如果生成的源码可以运行,就直接编译,直接打包。
6、如果生成的项目不能运行,但是你只需要更改一两个类:
(1)编译。如果导入了所依赖的包,那么项目编译应该是没问题的,这一步仔细检查。然后使用myeclipse或者java命令编译,生成一个class文件。

(2)打包。
简单的方法:使用rar,zip,好压等解压缩工具打开原始的Jar包,直接把修改的class文件拖进去,覆盖原来的class文件。
复杂的方法:将原始Jar包,直接解压生成一个文件夹,解压后的是class文件。用修改后的class文件进行替换,再将这个文件夹压缩生成一个zip文件,最后将zip文件的后缀名改成jar,即可运行。
注意使用winrar工具打包时,要选择压缩文件格式为zip

原创文章,欢迎转载,转载请注明出处!
如何修改可运行Jar包,如何反编译Jar包的更多相关文章
- JD-GUI反编译jar包为Java源代码
程序员难免要借鉴其他java工程的代码.可有时只能拿到.calss文件,jar包或者war包,这个时候要求程序员能熟练的将这些类型文件反编译为Java代码并形成可编译运行的项目.本文介绍的反编译工具是 ...
- 反编译Jar包
Jar 包(Java Archive)是对 Java 程序的打包,它可能包含源码,也可能没有. 对于有包含源码的 Jar 包,在 Eclipse 工程里设定好 source code 路径后能直接查看 ...
- jad 反编译 jar包
1.利用winrar解压缩jar包 或者CMD>jar -xvf test.jar -C classes 2.下载jad,利用jad反编译jar包 CMD>[jad_home]/jad.e ...
- IDEA—使用插件反编译jar包
关注微信公众号:CodingTechWork,一起学习进步. 引言 在产品上线后,如果遇到问题阻塞,我们第一步要做的就是去查看日志,但是代码不是一个人写的,说不定就会遇到没有日志的,遇到这种情况, ...
- Eclipse Oxygen(4.7.0)安装插件Eclipse Class Decompiler反编译JAR文件
引用自官方内容 Eclipse Class Decompiler是一款Eclipse插件,整合了多种反编译器,和Eclipse Class Viewer无缝集成,能够很方便的使用插件查看类库源码,进行 ...
- Java Jar源码反编译工具那家强
本文介绍下Java Jar常见的反编译工具,并给出使用感受. 反编译JAR能干什么: 排查问题.分析商业软件代码逻辑,学习优秀的源码思路. JD-GUI 下载地址:http://java-decomp ...
- JAVA 如何反编译JAR文件
1 直接的jar文件可以用winrar解压,然后得到class文件,但是这里得到的class文件也是编译过的二进制文件,用传统的文本编辑器无法打开. 2 用XJad这个软件可以反编译Jar文件,直接找 ...
- Jar包进行反编译,修改后重新打包
在学习和开发JAVA项目中,我们经常会用到第三方提供的一些jar.使用这些第三方工具包,可以提高我们开发的效率,缩短开发的时间.有的第三方工具,提供具体的使用说明和源代码,有时有的却不提供源代码,使用 ...
- 提取aar 包中的jar包,反编译再替换成新的aar
参考了 http://blog.csdn.net/hekewangzi/article/details/44676797 针对aar包,增加一些说明 aar包本质应该是zip文件.可以用360解压 ...
随机推荐
- Luogu4774 NOI2018 屠龙勇士 ExCRT
传送门 原来NOI也会出裸题啊-- 用multiset求出对付每一个BOSS使用的武器威力\(ATK_i\),可以得到\(m\)个式子\(ATK_ix \equiv a_i \mod p_i\) 看起 ...
- Luogu4546 THUWC2017 在美妙的数学王国中畅游 LCT、泰勒展开
传送门 题意:反正就是一堆操作 LCT总是和玄学东西放在一起我们不妨令$x_0=0.5$(其实取什么都是一样的,但是最好取在$[0,1]$的范围内),将其代入给出的式子,我们得到的$f(x)$的式子就 ...
- MemAdmin 轻量级可视化Memcached管理工具
蛮好用的 具体功能看图 开源地址:https://github.com/junstor/memadmin
- kill方法
删除磁盘上的文件. 语法 Kill 路径名 所需的_路径名_参数是一个字符串表达式,指定要删除的一个或多个文件名. _Pathname_可能包括驱动器和目录或文件夹. 例子删除当前路径下的TXT文档 ...
- 6大爱上react 的理由
本文翻译自:https://blog.syncano.io/reactjs-reasons-why-part-1/ 书写javascript 更加简单 (⚠️js 中混用html 也一直是外界所诟病的 ...
- cf166e 在四面体上寻找路线数 递推,取模
来源:codeforces E. Tetrahedron You are given a tetrahedron. Let's mark its vertices ...
- 对于League of Legends的分析
League of Legends是一款在国内甚至国际上都很受欢迎的一款网络竞技行的游戏.它是由美国Riot Games开发,腾讯游戏运营的英雄对战网游.<英雄联盟>除了即时战略.团队作战 ...
- 【课程总结】Linux内核分析课程总结
程涵 原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 每周实验报告: 反汇编一个简单的C程序 ...
- gitbub感想
Git 是 Linux 的创始人 Linus Torvalds 开发的开源和免费的版本管理系统,利用底层文件系统原理进行版本控制的工具.Git是目前为止最著名运用最好最受欢迎的分布式的配置管理工具. ...
- SE Springer小组之《Spring音乐播放器》可行性研究报告五、六
5 可选择的其他系统方案 曾经考虑过制作闹钟系统,但考虑到闹钟系统在电脑应用中极其不实用,所以此方案未通过. 6 投资及效益分析 6.1支出 本软件只用于完成课程学习要求,不用做商用,无基础设备等支出 ...