美文网首页
javap命令简述

javap命令简述

作者: 转身一世铅华尽 | 来源:发表于2019-08-12 09:47 被阅读0次

一、javap命令简述

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

当然这些信息中,有些信息(如本地变量表、指令和代码行偏移量映射表、常量池中方法的参数名称等等)需要在使用javac编译成class文件时,指定参数才能输出,比如,你直接javac xx.java,就不会在生成对应的局部变量表等信息,如果你使用javac -g xx.java就可以生成所有相关信息了。如果你使用的eclipse,则默认情况下,eclipse在编译时会帮你生成局部变量表、指令和代码行偏移量映射表等信息的。

通过反编译生成的汇编代码,我们可以深入的了解java代码的工作机制。比如我们可以查看i++;这行代码实际运行时是先获取变量i的值,然后将这个值加1,最后再将加1后的值赋值给变量i。

通过局部变量表,我们可以查看局部变量的作用域范围、所在槽位等信息,甚至可以看到槽位复用等信息。

javap的用法格式:

javap <options> <classes>

其中classes就是你要反编译的class文件。

在命令行中直接输入javap或javap -help可以看到javap的options有如下选项:

-help --help -? 输出此用法消息 -version 版本信息,其实是当前javap所在jdk的版本信息,不是class在哪个jdk下生成的。

-v-verbose输出附加信息(包括行号、本地变量表,反汇编等详细信息)

-l输出行号和本地变量表

-public仅显示公共类和成员

-protected显示受保护的/公共类和成员

-package显示程序包/受保护的/公共类 和成员 (默认)

-p-private显示所有类和成员

-c对代码进行反汇编 -s输出内部类型签名

-sysinfo显示正在处理的类的系统信息 (路径, 大小, 日期,MD5散列)

-constants显示静态最终常量

-classpath 指定查找用户类文件的位置

-bootclasspath 覆盖引导类文件的位置

详细使用请见:王二北

https://www.jianshu.com/p/6a8997560b05

官方文档:

https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-6.html#jvms-6.5.areturn

相关文章

  • javap命令简述

    一、javap命令简述 javap是jdk自带的反解析工具。它的作用就是根据class字节码文件,反解析出当前类对...

  • 通过javap命令分析java汇编指令

    王二北原创,转载请标明出处:来自王二北 一、javap命令简述 javap是jdk自带的反解析工具。它的作用就是根...

  • 查看Java的汇编指令

    通过javap 命令,可以将字节码文件反编译。如通过下面的命令: javap -c Xxxx.class 而有时候...

  • 210816:查看class编译版本-List集合去重-将一个表

    一. 查看class编译版本 1. javap命令 javap 命令行工具是用作反编译的,在反编译信息中,可以看到...

  • javap命令解析

    一、javap是什么?javap是将字节码进行反编译(与javac对应),可以查看java编译器为我们生成的字节码...

  • Java命令javap

    javap命令主要用于反编译java的class文件,查看java编译器生成的字节码。 看一段java代码: 对编...

  • javap命令学习

    注意,这里面没有非静态代码块只有静态代码块,为什么?非静态代码块和构造器结合在一起放在 中。 通过Javap命令看...

  • javap主要参数使用

    javap的用法格式javap 其中,classes是要反编译的class文件在命令行中直接...

  • javap -c

    javap是sun提供的对class文件进行反编译的工具,javap就和javac、java等命令用法类似。 ja...

  • 字节码文件

    反编译命令 javap 或使用 jclasslab插件 javap -v 文件名称:对字节码文件进行反编译 jav...

网友评论

      本文标题:javap命令简述

      本文链接:https://www.haomeiwen.com/subject/ayryjctx.html