0.引言
某些没有提供源码的历史遗留项目,或者第三方jar包,我们常常需要进行二开,但是又没有源码,这时就需要进行反编译获取到项目源码。
当然也不是所有的jar都能反编译的,某些做了防编译处理的则不能,但对于我们历史遗留的项目进行反编译则是完全可行的
今天我们就来看看如何进行反编译
1. 通过JD-GUI反编译
JD-GUI是一款开源的反编译软件,通过它我们可以比较方便的进行jar包的反编译。
1、其下载地址如下所示
JD-GUI下载地址
2、下载完成后,解压压缩包即可
3、我这里以mac系统为例,双击打开解压文件夹中JD-GUI
程序
新版m1芯片mac可能会出现如下报错
提示内容描述的是需要jdk1.8以上,实际上并不是这个原因,我这里使用的是jdk11,要解决这个问题还需要修改一个文件
2、右键点击JD-GUI
,点击显示包内容
3、进入Contents/MacOS
文件夹,打开universalJavaApplicationStub.sh
文件,使用新版的文件替换,新版文件内容可以在如下地址复制
https://raw.githubusercontent.com/tofi86/universalJavaApplicationStub/master/src/universalJavaApplicationStub
因为是外网地址,某些同学访问可能有问题,所以我单独将修改过后的软件包放在如下所示的网盘地址中,有需要可直接下载
JD-GUI mac修改版网盘下载地址
提取码: vkcs
4、双击打开软件,将需要反编译的jar包拖到软件界面中
5、选中全部文件,点击File-Save All Sources
保存反编译完的源码,选择保存路径
6、等待反编译完成即可
7、反编译完成后,在BOOT-INF/classes
文件夹下可以看到生成的源码
文章来源:https://www.toymoban.com/news/detail-798070.html
如此我们就拿到了想要的源码了,简单快捷!当然生成的源码在文件夹结构上会有些偏差,只需要手动调整一下即可,核心源码是可以完整捕捉的。文章来源地址https://www.toymoban.com/news/detail-798070.html
到了这里,关于Java进阶:如何反编译jar包获取源码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!