JAR包与JAD反编译

Java开发过程中,不免会遇到使用第三方jar的情况。那么我们先来简单的说一下jar文件。

JAR文件,全称为Java Archive File,就是Java档案文件。在开发过程中,许多专业的开发人员或团队会将自己写好的类中,抽离出一些比较有普遍使用意义的类,并通过jar命令将其打包在一个文件中,以方便给其他开发人员使用,这便是     JAR文件。

JAR文件以.jar作为文件后缀名。文件下主要包含两部分内容,一个是供开发使用的.class文件,一个是记载这个包中各个类的信息的META-INF或者MANIFEST.MF文件夹

     

当你试图是点开某些包下的.class文件时,却发现无法显示文件内容:

根据错误内容提示,我们可以发现导致该情况的原因是因为找不到源文件(Source not found)。通过对jar包的内容分析可以发现,里面的都是.class文件,这些文件是经过编译的,所以无法直接看到源代码。

那么,如何解决呢?既然是缺少源代码,那么我们就去下载相应的源代码,然后通过这里的Attach Source按键将下载后的源代码关联进来即可。

但是这么做,效率却不高,因为当你使用的很多第三方jar包时,你就要一个一个的将源码下载过来才能看到,而且有些源码在网上也很难下载到。

这时,我们可以借助工具来完成。今天主要介绍jadclipse这款Java反编译工具。用于反编译.class文件,从而看到源码。

jadclipse是目前一款比较主流的Java反编译工具,能反编译大部分.class文件。

具体怎么做呢?在上一篇eclipse的详解中,我们讲到eclipse可以通过其内部的PDE来拓展功能的,对此不理解的兄弟可以回去看一下我的那篇文章。

https://blog.csdn.net/srj1095530512/article/details/81564273

好了,现在开始整个操作流程(以win10环境为例)。

1.首先我们要下载一个.exe的jad主程序和一个jar包,这个主程序是用于反编译时的入口,这个包将用于eclipse的插件关联。

官网下载地址如下:http://jadclipse.sourceforge.net/wiki/index.php/Main_Page

主程序可通过点击下图中的Get Jad来下载

然后下载一个相对应的即可

懒的兄弟就直接从下面这个链接下载吧,已经把所有东西都包含在里面了:
链接:https://pan.baidu.com/s/1EPxzoDt0MMfStm8qo3WA8A 密码:6moo

下载完成后,我们得到两个文件,一个是net.sf.jadclipse_3.3.0.jar文件,一个是压缩包,压缩包解压得到一个jad.exe主程序文件和一个readme.txt.(记住这些文件存放的位置,后面会用到

我们需要的就是那个.jar和jad.exe两个。

2.将下载得到的.jar文件加入到eclipse安装目录下的plugins目录下方,这是为了让eclipse在启动的时候,能在插件系统中关联到jad。然后删除eclipse的configuration目录下org.eclipse.update 文件夹(这个主要用于eclipse更新之用,每次eclipse在使用之后都会在这个目录下生成一些使用信息),然后重启eclipse。

3.重启后,依次点击eclipse中的window-->Java,发现多了一个jadClipse的选项(如果没有的话,重新执行上面的步骤),然后配置两个路径,第一个是jad.exe的存放路径,第二个是jad反编译过程中,产生的临时文件的存放路径

4.完成上两步后,仍需将eclipse中.class文件的默认编辑器进行修改,让.class文件用jad的编辑器来打开。依次点击eclipse中的

windows-->General-->Editors-->File Association,然后将.class和.class without source两个的默认编辑器设置为jad的编辑器。(如果在Associated editors下面没有找到jadclipse的编辑器,可先通过右边的Add按键添加进来!

最后,重新点击第三方jar包中的.class文件,就可以看到反编译出来的源代码了!!!

从最上面的那行注释可以看出,这是经由jadclipse反编译得到的!!!

虽然jadclipse能反编译大部分.class文件,但是有些仍然无法反编译。这是因为jar包的生成者在其中加入了许多反编译技术。

猜你喜欢

转载自blog.csdn.net/srj1095530512/article/details/81587601