最新消息:把Logo换了一下,虽然丑了点,但至少完全是自己的设计

查看Java编译后class文件的JDK版本

Java 宇托 471浏览 暂无评论

有时候得到一个编译好的class文件或者Jar包,但不知道它的JDK版本是什么。这时候我们可以直接查看class文件的二进制内容来得到class文件的JDK版本。

用二进制编辑或查看工具(例:UE,WinHex,SublimeText)打开class文件,取得最前面的八个字节。例如:CA FE BA BE 00 00 00 32

前四个字节CA FE BA BE是class文件的固定标识。后四个字节表示版本号,后四个字节中的第一个字节和第三个字节目前为止还没有使用过,所有版本的class文件都是00。后四个字节中的第二个字节是小版本号,只是在JDK1.1.X的时候使用过,从JDK1.2开始,就未使用过。后四个字节中的最后一个字节,也就是第八个字节就是我们需要查看的信息。比如上面的CA FE BA BE 00 00 00 32对应的版本十六进制就是32

总结成一句话就是,用二进制编辑工具打开class文件,取得第八个字节的值,然后对照下表就行。

具体的对应表如下:

JDK版本 十六进制版本号 十进制版本号
JDK1.1 2D 45
JDK1.2 2E 46
JDK1.3 2F 47
JDK1.4 30 48
JDK5 31 49
JDK6 32 50
JDK7 33 51
JDK8 34 52

转载请注明:宇托的狗窝 » 查看Java编译后class文件的JDK版本

发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址