`

使用javap反编译class文件

    博客分类:
  • java
阅读更多
一个普通的Java类:
public class Test    // 从Object类继承
{
    
public static void main(String[] args)
    
{
        System.out.println(
new Test().toString());
    }

}

现在我们使用JDK带的反编译工具javap来反编译Test.class,先执行下面的命令:
javap Test > Test.txt
打开Test.txt文件后,会看到如下的代码:
public class Test extends java.lang.Object{
    
public Test();
    
public static void main(java.lang.String[]);
}

再使用下面的命令来得到bytecode代码:
javap -c Test >Test1.txt
打开Test1.txt后,会看到如下的代码:
public class Test extends java.lang.Object{
public Test();
  Code:
   
0:    aload_0
   
1:    invokespecial    #8//Method java/lang/Object."<init>":()V
   4:    return

public static void main(java.lang.String[]);
  Code:
   
0:    getstatic    #16//Field java/lang/System.out:Ljava/io/PrintStream;
   3:    new    #1//class Test
   6:    dup
   
7:    invokespecial    #22//Method "<init>":()V
   10:    invokevirtual    #23//Method java/lang/Object.toString:()Ljava/lang/String;
   13:    invokevirtual    #27//Method java/io/PrintStream.println:(Ljava/lang/String;)V
   16:    return
}
分享到:
评论

相关推荐

    jad.exe-windows版本,将.class文件反编译为java文件(专业)

    jad.exe-windows版本,将.class文件反编译为java文件(专业) 使用 java自带的javap -p 名称.class反编译的有可能不正确,例如反编译Enum枚举,所以我们需要使用更加专业的工具

    JD-GUI,JDGUI,java反编译工具

    问:javap是反编译,还是反汇编? 答:javap是JDK自带的反汇编器。 (它的作用就是根据class字节码文件,反解析出当前类对应的code区(汇编指令)、本地变量表、异常表和代码行偏移量映射表、常量池等等信息。)

    ByteCode Outline

    在遇到一些小问题的时候我们经常会使用Javap反编译取得字节码来分析,虽然Javap能完成这个工作,但是有两个缺点,一方面操作麻烦,需要很多步骤,一方面没有文档注释,对新手来说看起字节码来比较麻烦。 这里推荐...

    eclipse.BytecodeOutline插件

    在遇到一些小问题的时候我们经常会使用Javap反编译取得字节码来分析,虽然Javap能完成这个工作,但是有两个缺点,一方面操作麻烦,需要很多步骤,一方面没有文档注释,对新手来说看起字节码来比较麻烦。这里推荐一个...

    jad- java反编译软件

    一个类似于javap的java反编译工具,运行速度快,据说Front End Plus、mDeJava、Decafe Pro、Cavaj Java Decomplier、DJ Java Compiler、NMI's Java Class Viewer等反汇编工具都以jad作为核心引擎,只是在jad内核的...

    自己动手实现一个Java Class解析器

    实际上JDK已经提供了命令行工具javap来反编译Class文件,但本篇文章将阐明我实现解析器的思路。  Class文件  作为类或者接口信息的载体,每个Class文件都完整的定义了一个类。为了使Java程序可以“编写一次,...

    synchronize底层实现原理

    Java文件想要看字节码通常使用 javap 命令将java的class文件反汇编,具体操作步骤如下: 1. 先写好一个SynchronizedTest.java文件(下面贴出) 2. 在java文件的目录下,使用命令 javac SynchronizedTest.java 编译,...

    ExtendJ-Mapper:ExtendJ的扩展,可将字节码映射到源代码

    然后,运行javap -verbose -c compiled_file.class &gt; decompiled_file.txt created_file.class javap -verbose -c compiled_file.class &gt; decompiled_file.txt来反编译.class文件。 此时,进入byte

    JavaEE所需的配置文件(JDK,JRE)

    jdk全称“Java Development Kit”,指的是Java语言的软件开发工具包,主要用于移动设备...Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。 Jconsole: Java进行系统调试和监控的工具

    jsp小示例显示日期

    JDK包含的基本组件包括: javac – 编译器,将源程序转成字节码 jar – 打包工具,将...Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。 Jconsole: Java进行系统调试和监控的工具

    jdk-6u45-windows-i586 & x64

    jdk1.6安装教程及环境变量配置: 双击运行"jdk-6u45-windows-x64.exe"程序,依...Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。 Jconsole: Java进行系统调试和监控的工具结构图

    深入JVM内核 - 原理、诊断与优化

    介绍JVM规范中的最重要的内容——Class文件结构,同时介绍ASM库的使用以及对class文件的修改。 第十一课 字节码执行 案例以及javap JIT及相关参数 介绍JVM的字节码以及反汇编方法,同时介绍JIT相关的参数和应用。

    JDK1.8(32位和64位)正式版+JDK1.8API帮助文档

    JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。没有JDK的话,无法编译...Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。 Jconsole: Java进行系统调试和监控的工具

    JAVA上百实例源码以及开源项目

     Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考性。像坐标控制、旋转矩阵、定时器、生成图像...

    jdk1.6 windows 64位

    Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。 Jconsole: Java进行系统调试和监控的工具常用的package java.lang: 这个是系统的基础类,比如String等都是这里面的,这个...

    JAVA上百实例源码以及开源项目源代码

     Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考性。像坐标控制、旋转矩阵、定时器、生成图像...

    java开源包8

    目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当...

    java开源包1

    目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当...

    java开源包11

    目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当...

Global site tag (gtag.js) - Google Analytics