最新消息:发现真没时间折腾VPS,最近又换了个空间。呵呵

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

有时候得到一个编译好的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.12D45
JDK1.22E46
JDK1.32F47
JDK1.43048
JDK53149
JDK63250
JDK73351
JDK83452

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

发表我的评论
取消评论

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

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