zoukankan      html  css  js  c++  java
  • JDK自带反编译工具javap

    在JDK的bin文件夹下,有许多自带工具: javap就是其中的一个,对应为 javap.exe

    javap可反编译查看Java编译器编译生成的字节码文件,

    语法:

      javap [ options ] class  

    options:
      -help  帮助
      -l  输出行和变量的表
      -public  只输出public方法和域
      -protected  只输出public和protected类和成员
      -package  只输出包,public和protected类和成员,这是默认的
      -p -private  输出所有类和成员
      -s  输出内部类型签名
      -c  输出分解后的代码,例如,类中每一个方法内,包含java字节码的指令,
      -verbose  输出栈大小,方法参数的个数
      -constants  输出静态final常量
     
    例如:
     
    先进入到class文件的目录,再执行:javap -verbose Helloworld.class   (有时候会报错,说是找不到该class,可以把.class去掉再执行下,只写类名即可。)
     从中可以看到jdk版本, major version: 51
      jdk版本和版本号的对照表
                  十六进制    十进制
      JDK1.5      31          49
      JDK1.6      32          50
      JDK1.7      33          51
      JDK1.8      34          52
    --------------------------------------------------------------------
    javap -c Helloworld > F://Helloworld.txt
    可将反编译结果输出到txt文件中
    --------------------------------------------------------------------
    问题总结:
     
    1. 如果该类太长,反编译后导致cmd中看不到关键信息major version, 则需要修改cmd的属性(属性 -> 布局 -> 屏幕缓冲区的高度,调大一些)。
     
  • 相关阅读:
    052-233(新增70题2018)
    052-232(新增70题2018)
    052-231(新增70题2018)
    052-230(新增70题2018)
    052-229(新增70题2018)
    052-228(新增70题2018)
    052-227(新增70题2018)
    052-226(新增70题2018)
    052-225(新增70题2018)
    进制之间的那点事(二进制、八进制、十进制、十六进制)
  • 原文地址:https://www.cnblogs.com/FocusIN/p/7384613.html
Copyright © 2011-2022 走看看