`
iuhiqnehc
  • 浏览: 14362 次
社区版块
存档分类
最新评论

在eclipse中反编译并查看jar包中的class文件

 
阅读更多

第一种:直接用F3或者ctrl点击查看。
Eclipse反编译工具Jad及插件JadClipse配置:
Jad是一个Java的一个反编译工具,是用命令行执行,和通常JDK自带的java,javac命令是一样的。不过因为是控制台运行,所以用起来不太方便。不过幸好有一个eclipse的插件JadClipse,二者结合可以方便的在eclipse中查看class文件的源代码。配置如下:
A.下载相应版本的JadClipse,
http://jadclipse.sourceforge.net/wiki/index.php/Main_Page#Download。将net.sf.jadclipse_3.3.0.jar拷贝到Eclipse下的plugins目录(也可以用links安装)。如果是MyEclipse8.x,将net.sf.jadclipse_3.3.0.jar 拷贝到myeclipse安装目录\Genuitec\Common\plugins\下。在myeclipse安装目录下dropins/创建eclipse文件夹,然后在eclipse文件夹中分别创建features、plugins文件夹,将net.sf.jadclipse_3.3.0.jar 分别拷贝到features和plugins文件夹中。
B.下载相应版本的Jad,
http://www.varaneckas.com/jad。解压后将Jad.exe拷贝到JDK的bin目录下(方便,与java,javac等常用命令放在一起,可以直接在控制台使用jad命令)
C.重启Eclipse,在Eclipse->Window->Preferences->Java会多出一个JadClipse目录,单击,在Path to decompiler中输入jad.exe的位置(E:\JDK\jdk1.7.0_03\bin\jad.exe),在Directory for temporary files中可指定临时文件的路径。
D.在Eclipse->Window->Preferences->General->Editors->File Associations可以看到.class文件的默认打开方式有两个,JadClipse和Eclipse自带的Class File Viewer,而JadClipse是默认的。
E.配置完成,选择需要查看的类,按F3即可查看源码。
可以看到最上面的一行"/*jadclipse*/// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.",说明是由jad反编译的。

第二种:批量反编译。将一个jar全部反编译,同时保留树类之间的关系等,还是使用jad工具(或小工具jd-gui.exe)。

因为之前我们已经将jad加入到了%JAVA_HOME%\bin中,只要配置了环境变量,我们就可以在命令行中方便的使用。在这里,以dom4j-1.6.1.jar为例来说明具体的操作步骤。

解压dom4j-1.6.1.jar和jaxen-1.1-beta-7.jar。为了方便,我将JAR包解压放到F盘根目录,在cmd中,进入到F盘根路径下,输入命令:jad -o -r -s java -d src org/**/*.class

我解释一下这些参数的含义:

-o:覆盖旧文件,而且不用提示确认。

-r:重新加载生成包结构。

-s:定义输出文件的扩展名。jad为默认扩展名,我们反编译后当然是要.java源文件了。

-d:输出文件的目录。src表示反编译后的所有文件都放在src目录下。

org/**/*.class:org是解压后的文件夹的名字,整个表示org目录下的所有class文件。你也可以写成这样**/*.class,这表示当前目录及其子目录下所有的class文件(包含所有的子目录)。

反编译dom4j-1.6.1.jar必须得有jaxen-1.1-beta-7.jar,因为dom4j里面有对xpath的调用,而这些东西都是引用jaxen里的API,如果不加则会有错误。

到此,关于反编译的内容全部说完了,不过我还想补充一点,有可能JAR包中的class文件不是老外的,而是我们自己写的,里面可能会有中文的情况,这时,虽然反编译通过了,但里面却是gb2312形式的unicode编码,因此我们还得做一个工作,将这些编码转换成中文。

用ant脚本来完成这个工作,内容比较简单,加了注释,应该很好明白,脚本文件名为build.xml,它放在src目录下,和反编译所得的包处在同一层。

<?xml version="1.0" encoding="GBK"?> <project name="decompile" basedir="." default="native2ascii">

     <!-- 定义输出目录 -->

     <property name="build" value="build"/> <!-- 清除输出目录 -->

     <target name="clean">

         <delete dir="${build}"/>

     </target>

     <!-- 创建输出目录 -->

     <target name="init" depends="clean">

         <mkdir dir="${build}"/>

     </target>

     <!-- 编码转换 reverse="true"为反向转换 -->

             <target name="native2ascii" depends="init">

         <native2ascii reverse="true" src="${basedir}" encoding="gb2312" dest="${basedir}/${build}" />

     </target>

 </project>


有一个地方需要补充一下,在native2ascii元素中,src和dest这两个属性表示着路径。如果反编译后,src目录下,有多个不同的文件夹,这时使用ant来转换编码,请先想好要对哪些文件进行反编码;如果按上面的写法,将会把src目录下的所有文件夹中的所有文件进行反编码。假设,现在有com和org两个文件夹(其实是两个包),我只需要对com中的文件进行反编码,那么可以这样改写:src="${basedir}/com" dest="${basedir}/${build}/com" 其它的都不变。在cmd中进入到src路径下,输入ant,回车即可。

分享到:
评论

相关推荐

    eclipse查看jar包class文件源码插件,jar包反编译查看工具

    在IT行业中,开发人员经常需要对已编译的.jar文件进行反编译,以便查看其中的源代码。这是因为有时我们可能需要理解别人的代码实现,或者查找某个类或方法的实现细节。Eclipse作为一款强大的Java集成开发环境,提供...

    在Eclipse中反编译Class文件完全详解

    本文详细介绍了如何在Eclipse环境中反编译Class文件,以便查看对应的源码。 首先,反编译Class文件是为了能理解那些无法直接获取源代码的二进制文件的运行逻辑。尽管Java是开源的,但有些库或组件可能出于安全或...

    【精华】jar包中class文件的反编译插件

    jar包中class文件的反编译插件,我在网上搜了很多反编译插件的资料,都是不支持eclipse和myeclipse的,都无法反编译jar包中class文件,后面我拿着反编译插件自己进行配置,终于配置出支持eclipse和myeclipse的反编译...

    Eclipse中反编译Class文件完全详解

    其次,JadClipse是一个Eclipse插件,它将JAD的功能集成到Eclipse IDE中,使得开发者可以直接在Eclipse中反编译并查看Class文件。这对于调试和理解第三方库或无法获取源代码的项目特别有用。 以下是使用JAD和...

    eclipse离线插件compiler反编译jar包进行debug调试

    在IT行业中,开发人员经常会遇到需要对已有的jar包或class文件进行反编译和调试的情况,以便理解其内部逻辑或修复bug。Eclipse作为一款流行的Java集成开发环境(IDE),提供了丰富的插件支持,使得这个过程变得相对...

    eclipse编译.class所需jar包

    为了在Eclipse中查看无源码的第三方库的源代码,你需要jad.exe作为反编译工具,以及net.sf.jadclipse_3.3.0.jar作为Eclipse的插件,将这两者结合使用,便能在Eclipse的友好环境中直接查看和理解.class文件的源码逻辑...

    eclipse源码反编译jar包

    标题“eclipse源码反编译jar包”指的是在Eclipse中安装并使用特定的插件来查看.jar文件的源代码。这通常涉及到将反编译工具集成到Eclipse中,以便开发者可以在不离开IDE的情况下查看和理解第三方库的内部工作。描述...

    eclipse反编译class文件

    本文将详细讲解如何在Eclipse环境中进行class文件的反编译,以及所需的jar包和exe文件。 首先,我们要明白的是,Eclipse本身并不内置反编译功能,但我们可以借助第三方插件或者外部工具实现这一目的。在这个主题中...

    eclipse中反编译jar包源码

    "eclipse中反编译jar包源码"这个主题涉及到如何在Eclipse集成开发环境中使用特定的插件和工具来查看.jar文件的源代码。 首先,我们来看一下标签"jad",它是Java反编译器JAD的简称。JAD是一款流行的Java字节码到源...

    用jad工具反编译eclipse中jar文件中的class文件.docx

    在IT行业中,有时候我们需要对已编译的Java类文件(class文件)进行反编译,以便查看源代码或理解程序的内部工作原理。在这种情况下,jad工具是一个常用的反编译器,尤其对于eclipse这样的集成开发环境(IDE)来说,...

    Eclipse中安装反编译工具Fernflower(Enhanced Class Decompiler)(csdn)—.pdf

    在Java开发过程中,有时我们需要查看或理解没有源代码的jar包中的类文件,这时反编译工具就显得尤为重要。Fernflower是一款由JetBrains开发的高效Java反编译器,它能够将字节码转换为可读性强的源代码形式。尽管...

    eclipse jar 反编译

    1. 在Eclipse中,选择"File" -&gt; "Import" -&gt; "General" -&gt; "Archive File",导入你需要反编译的.jar文件。 2. 导入后,.jar文件会作为一个新的项目出现在"Package Explorer"或"Project Explorer"视图中。 3. 展开这...

    eclipse安装反编译所需的jar包和可执行程序

    - 现在,当你在Eclipse中查看该jar包中的类时,Eclipse会调用JADclipse来显示反编译的源代码。 通过以上步骤,你已经在Eclipse环境中成功安装了反编译所需的组件,现在可以方便地查看jar包的源代码了。尽管反编译...

    如何在eclipse中查看.class文件的步骤

    8. **测试配置**:完成上述步骤后,你可以通过右键点击项目中的`.class`文件,选择`Open With` -&gt; `JadClipse`来查看其反编译后的源代码。如果配置正确,你应该能够看到源码视图。如果未能成功,尝试重启Eclipse,...

    eclipse中class 文件反编译.docx

    本文旨在介绍如何通过反编译工具将`.class`文件转换为`.java`文件,以便在Eclipse中能够正常查看源代码。 #### 反编译工具的选择与安装 为了解决“Source not found”的问题,首先需要选择一个可靠的反编译工具。...

    怎样在eclipse查看.class文件.jar

    在Java开发过程中,有时我们需要查看`.class`文件以理解代码的编译结构或者进行反编译操作。Eclipse作为一款强大的Java集成开发环境,虽然默认并不支持直接查看`.class`文件,但通过添加特定插件可以实现这一功能。...

    Eclipse反编译Class文件所需要的插件

    本文将详细讨论"Eclipse反编译Class文件所需要的插件",以及如何使用这些插件。 首先,我们提到的两个关键文件是`jad.exe`和`net.sf.jadclipse_3.3.0.jar`。`jad.exe`是JAD(Java Decompiler)的可执行文件,它是一...

    用jad工具反编译eclipse中jar文件中的class文件.pdf

    在IT行业中,有时候我们需要对已编译的Java类文件(class文件)进行反编译,以便查看源代码或理解程序的内部工作原理。Eclipse是一款流行的Java集成开发环境(IDE),它提供了丰富的功能来支持开发过程。然而,...

Global site tag (gtag.js) - Google Analytics