程序员不免要借鉴其余java工程的代码。可有时只能拿到.calss文件,jar包或者war包,这个时候要求程序员能熟练的将这些类型文件反编译为Java代码并造成可编译运行的项目。本文介绍的反编译工具是JD-GUI。反编译的jar包是一个springboot项目的jar包。java
下载JD-GUI后解压,无需安装,双击打开exe文件。 程序员
open file选择要反编译的jar包,
打开,左侧classes->com目录下就是java源代码文件 spring
点击想查看的文件,能够看到源代码,点击有下划线的变量符号,会自动跳转到定义处,也能够搜索变量名,可是搜索时会比较慢,须要多等一会。 springboot
这样只能查看代码,要编译,修改,运行代码,就要把全部代码提取出,造成工程项目。点击File->save all source
源代码会保存为压缩包
压缩包解压是三个文件夹
java代码都在BOOT-INF/calsses/com里
将classes目录里的全部东西一块儿拷贝到创建好的空的springboot项目中编译运行,目录层次要拷贝正确。 app
项目配置文件application.properties和pom.xm里的内容复制反编译解压目录同名文件里的内容粘贴进来。 ide
如今项目代码有了,配置文件也有,可是通常还不能成功运行项目。由于反编译的pom不是特别准确,可能不少项目须要的包,pom里没有import。或者原项目用的一些jar包原本就是手工导入项目,不是pom统一管理的。
最好的办法就是从被反编译的jar包里提取全部须要import的jar包。 工具
将test01.jar后缀名改为zip test01.zip,解压到当前文件夹。
解压后的BOOT-INF\lib里有本项目须要的所有jar包,将全部jar包经过add external jar的方式加到项目中。 3d
到这里距离成功运行项目很近了,由于反编译的代码也不是特别精确,有些代码须要人工分析修改,或者修改不成功只能注释掉,才能经过编译。运行时有些包可能报错,主要是pom引入的包和手工导入的包冲突,或者有些包版本不对,也须要逐一解决。固然,有些反编译项目直接正确运行不报错误,这样固然最好了。blog