本文共 825 字,大约阅读时间需要 2 分钟。
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
运行WinHex,并且将Demo.class文件拖入其中,得到:
CAFEBABE这4个字节表示的是魔术=咖啡。接下来的4个字节表示版本号,这里是00 00 00 34,其中,34为16进制对应的10进制的值为52,我们查看
jdk版本号对应关系如下: 34对应的jdk1.8。其它相关信息可以查看这篇博文:
找到jdk的安装路径,我这里为:C:\Program\Java\jdk1.8.0_151\bin
执行cmd,目录切换到我们代码编译后的.class文件,执行如下命令javap -c Demo
由于我们通常使用IDE来开发java代码,因此,一种更加简便的方式是在IDEA中配置,解析Java字节码,具体操作如下:
(2)Tools->ExternTools中点击那个绿色的加号
(3)添加Name、Program、Parameters以及Working directory,其中Program是你实际的jdk的路径下的javap.exe的路径。
(4)相应的*.java文件,右键能够看到如下标识:
(5)点击上述Show Byte Code,即可看到编译后的代码: