• 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的属性(属性 -> 布局 -> 屏幕缓冲区的高度,调大一些)。
     
  • 相关阅读:
    java之元数据(metadata)
    悲观锁(Pessimistic Locking)和乐观锁
    新建了springboot项目在包下右键创建class时无class选项
    idea创建一个springboot项目
    处理百万级以上的数据提高查询速度的方法
    写入文件
    WCf客户端测试
    WCF客户端代理
    WCF之Windows宿主(可安装成服务自动并启动)
    戴上耳机,全世界都是你的
  • 原文地址:https://www.cnblogs.com/FocusIN/p/7384613.html
Copyright © 2020-2023  润新知