子兮子兮

No can, but will.

目录
使用 javap 命令查看 class 文件 JDK 编译版本,避免 Unsupported major.minor version 异常
/  

使用 javap 命令查看 class 文件 JDK 编译版本,避免 Unsupported major.minor version 异常

Unsupported major.minor version

之前遇到了同一 class 文件在不同 JRE 环境的 WEB 服务下运行报 Unsupported major.minor version 异常的问题,出现此问题的原因是编译环境 JDK 版本高于运行环境,所以使编译环境和运行环境的版本一致,可以避免很多不必要的错误。记录一下。

可以使用 javap 命令查看编译版本:

javap -verbose ClassName.class
javap-verbose.png

可以看出 major version: 52 对应 java 1.8.0
java-version.png
十六进制.png

major.minor version 版本对照表

编译版本target 参数十六进制 major.minor十进制 major.minor
jdk1.1.8不能带 target 参数00 03 00 2D45.3
jdk1.2.2不带(默认为 -target 1.1)00 03 00 2D45.3
jdk1.2.2-target 1.200 00 00 2E46.0
jdk1.3.1_19不带(默认为 -target 1.1)00 03 00 2D45.3
jdk1.3.1_19-target 1.300 00 00 2F47.0
j2sdk1.4.2_10不带(默认为 -target 1.2)00 00 00 2E46.0
j2sdk1.4.2_10-target 1.400 00 00 3048.0
jdk1.5.0_11不带(默认为 -target 1.5)00 00 00 3149.0
jdk1.5.0_11-target 1.4 -source 1.400 00 00 3048.0
jdk1.6.0_01不带(默认为 -target 1.6)00 00 00 3250.0
jdk1.6.0_01-target 1.500 00 00 3149.0
jdk1.6.0_01-target 1.4 -source 1.400 00 00 3048.0
jdk1.7.0不带(默认为 -target 1.6)00 00 00 3250.0
jdk1.7.0-target 1.700 00 00 3351.0
jdk1.7.0-target 1.4 -source 1.400 00 00 3048.0
jdk1.8.0-target 1.800 00 00 3452.0
Apache Harmony 5.0M3不带(默认为 -target 1.2)00 00 00 2E46.0
Apache Harmony 5.0M3-target 1.400 00 00 3048.0

END.


内容声明
标题 使用 javap 命令查看 class 文件 JDK 编译版本,避免 Unsupported major.minor version 异常
链接 https://zixizixi.cn/articles/2017/09/13/1505285468516.html 来源 iTanken
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可,转载请保留此声明

评论