Java查看字节码文件(基于JDK和IDEA)

Java虚拟机执行的是Java字节码文件(也就是.class文件),比如写一个Demo.java类:

public class Demo {
    
    private static int num = 1;

    public static void main(String[] args) {
        System.out.println("say hello " + num);
    }
}
会对应生成一个对应的Java字节码文件Demo.class

1、查看原生的16进制代码:
需要下载WinHex
运行WinHex,并且将Demo.class文件拖入其中,得到:

分析:
CAFEBABE这4个字节表示的是魔术=咖啡。接下来的4个字节表示版本号,这里是00 00 00 34,其中,34为16进制对应的10进制的值为52,我们查看 jdk版本号对应关系如下:

34对应的jdk1.8。其它相关信息可以查看这篇博文: https://www.jianshu.com/p/252f381a6bc4

2、需要解析16进制代码
利用javap命令
找到jdk的安装路径,我这里为:C:\Program\Java\jdk1.8.0_151\bin
然后配置到相应的环境变量:

执行cmd,目录切换到我们代码编译后的.class文件,执行如下命令javap -c Demo

IDEA中配置解析字节码:
由于我们通常使用IDE来开发java代码,因此,一种更加简便的方式是在IDEA中配置,解析Java字节码,具体操作如下:
(1)点击File->Setting...

(2)Tools->ExternTools中点击那个绿色的加号

(3)添加Name、Program、Parameters以及Working directory,其中Program是你实际的jdk的路径下的javap.exe的路径。

(4)相应的*.java文件,右键能够看到如下标识:

(5)点击上述Show Byte Code,即可看到编译后的代码:

猜你喜欢

转载自blog.csdn.net/timchen525/article/details/80849672
今日推荐