`
wlbbswl
  • 浏览: 170568 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

在Eclipse中反编译Class文件

 
阅读更多

学习中,需要反编译Java的class文件。我的开发工具是windows xp+Eclipse3.2.2+MyEclipse。我找到了jad反编译工具,在互联网上找到了一些很有用的安装步骤。下面记录了我的安装过程。

 
一、下载
1。下载 jad 工具,在官方网站没有下载到,在CSDN上可以下载。
2。下载插件 net.sf.jadclipse_3.3.0.jar。
 
二、安装
1。安装jad工具。下载后解压,然后将解压后的jad.exe文件复制到%JAVA_HOME%\bin目录下面(可以将jad.exe放到任意位置,只要记住其存放路径就好,下面要用到)。
2。安装插件。Eclipse中的插件安装可以参考:Eclipse使用技巧()Eclipse中插件的安装
      我用复制的方法:直接把net.sf.jadclipse_3.3.0.jar拷贝到%ECLIPSE_HOME%\plugins目录下。
    把使用link的方法拷贝到下面:建立D\Myplugins\net.sf.jadclipse_3.3.0\eclipse\plugins的目录结构,将jadclipse_3.2.4.jar放到plugins目录下面(注:其中D\Myplugins为你自己定义的一个专门放置插件的目录)。再在%ECLIPSE_HOME%\links目录下面建立一个net.sf.jadclipse_3.3.0.link文件(该文件名随便取)。文件里面内容为:path=D/Myplugins/net.sf.jadclipse_3.3.0。
 
三、配置
1。启动Eclipse,打开Window->Preferences->Java->JadClipse,如果找到了JadClipse,即JadClipse插件被激活了。设置jad路径:
 
2。在EclipseWindows—> Perference—>General->Editors->File Associations中修改“*.class”默认关联的编辑器为“JadClipse Class File Viewer”
 
四、使用jad反编译
1。在DOS窗口中,到class所在目录,直接运行 >jad DB.class,将在该目录中生成DB.jad文件。运行 >jad -sjava DB.class,将在该目录中生成DB.java文件
 
 
2。在Eclipse 工作台使用:
1)把class目录加入项目:(这一步许多文档都没有写到,花了我很多时间
      1.1)项目--〉属性--〉java buildpath--〉add class folder (如 a)--〉OK
      1.2)a--〉import--〉General-->File system-->Browse-->OK
2)双击class 文件,出现可爱的java文件,编译成功
 
五、批量反编译
以下部分转载 菠萝大象的文章
 
现在有人会说了,这样一个一个的看太麻烦了,我需要一次把一个JAR包下的所有class文件反编译成java源文件。这样的想法是可行的,还是使用jad工具。
    3、批量反编译
       因为之前我们已经将jad加入到了%JAVA_HOME%\bin中,只要配置了环境变量,我们就可以在命令行中方便的使用。在这里,大象还是以dom4j-1.6.1.jar为例来说明具体的操作步骤。
       解压dom4j-1.6.1.jarjaxen-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/**/*.classorg是解压后的文件夹的名字,整个表示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元素中,srcdest这两个属性表示着路径。如果反编译后,src目录下,有多个不同的文件夹,这时使用ant来转换编码,请先想好要对哪些文件进行反编码;如果按上面的写法,将会把src目录下的所有文件夹中的所有文件进行反编码。假设,现在有comorg两个文件夹(其实是两个包),我只需要对com中的文件进行反编码,那么可以这样改写:src="${basedir}/com" dest="${basedir}/${build}/com"
    其它的都不变。在cmd中进入到src路径下,输入ant,回车。可以看到如下结果:

 

 
反编译的内容基本结束。

本文出自 “追求架构 梦想生活” 博客,请务必保留此出处http://nihaiou.blog.51cto.com/790190/274666

分享到:
评论

相关推荐

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

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

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

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

    Eclipse中反编译Class文件详解

    【Eclipse中反编译Class文件详解】 在Java开发中,有时我们需要查看或理解某些库的内部实现,尤其是当我们遇到不公开源代码的类文件时。Eclipse作为主流的Java集成开发环境,提供了多种方式来查看编译后的Class文件...

    eclipse反编译class文件

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

    在Eclipse中反编译Class

    本文将详细介绍如何在Eclipse中进行Class文件的反编译。 首先,我们需要一个反编译工具。jad.exe是Java的反编译器,它可以将字节码转换回接近原生Java源代码的形式。JAD有很多版本,包括命令行版和图形用户界面版,...

    MyEclipse、Eclipse反编译Class文件工具

    标题和描述提到的"MyEclipse、Eclipse反编译Class文件工具"正是为了解决这一需求。下面我们将详细介绍这个主题,并探讨如何在MyEclipse和Eclipse这两个流行的Java集成开发环境中进行反编译。 首先,让我们了解什么...

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

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

    eclipse反编译class文件配置

    在这个"eclipse反编译class文件配置"的主题中,我们将深入探讨如何在Eclipse中进行配置以实现这一目标。 首先,我们需要知道反编译的概念。反编译是将已编译的机器码转换回接近原始源代码的过程。在Java中,由于...

    eclipse中class 文件反编译.docx

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

    eclipse反编译.class文件

    现在,当我们在Eclipse中右键点击一个.class文件并选择"Open With" -&gt; "Text Editor"时,Eclipse应该会使用JAD进行反编译并显示源代码。如果描述中的"测试了20台机子,都可以"是真实的,那么这个过程在多台计算机上...

    eclipse 反编译class源代码

    总之,Eclipse反编译class源代码是一个对开发者非常有用的技能,它可以帮助我们理解和调试代码,尤其是在没有原始源代码的情况下。通过集成JAD或其他反编译工具,我们可以便捷地查看和分析.class文件,提升我们的...

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

    6. **指定Jad路径**:在配置界面中,指定`jad.exe`的完整路径以及`Jadtemp`文件夹的路径,使得Eclipse能够调用Jad进行反编译操作。 7. **设置默认打开方式**:接下来,你需要设定Eclipse在遇到无源代码的`.class`...

    eclipse反编译class文件jad工具

    标题中的“eclipse反编译class文件jad工具”指的是在Eclipse环境中使用JAD来反编译Java类文件。这通常是因为开发者想要理解第三方库的工作原理,或者在没有源代码的情况下进行问题排查。JAD不仅可以在命令行中使用,...

    eclipse、myeclipse中class反编译工具

    本文将详细介绍如何在Eclipse和MyEclipse集成开发环境中使用这些工具来反编译.class文件。 首先,我们关注的是JAD,这是一个流行的Java反编译器,它能够将字节码转换回可读的Java源代码。JAD通常用于调试、学习或...

    eclipse反编译class插件

    Eclipse反编译插件,如FernFlower或JD-Eclipse,可以无缝集成到Eclipse中,使得开发者可以直接在IDE内部查看`.class`文件的源代码。这些插件通常通过解析Java字节码并生成接近原始源代码的文本表示来工作。 4. **...

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

    3. 在文件列表中选择需要查看的类,源代码会自动显示在右侧窗口。 在提供的压缩包文件中,我们看到的文件包括LICENSE、README.md、NOTICE、site.xml、plugins和features。这些文件通常包含开源软件的许可证信息...

    Eclipse插件,反编译Class

    除了Jadclipse,另一个常用的Eclipse反编译插件是"JD-Eclipse",对应的文件是"jd-eclipse-2.0.0.zip"。这个插件同样能帮助我们查看Class文件的源代码。安装JD-Eclipse需要解压zip文件,找到其中的feature和plugin...

    eclipse反编译插件,可以查看class文件

    在压缩包文件"反编译查看class源文件"中,可能包含了使用Jad或其他反编译工具的相关配置、教程或者示例。使用者可以通过解压文件,按照其中的指导进行操作,学习如何在Eclipse环境中进行反编译工作,提升自己的编程...

Global site tag (gtag.js) - Google Analytics