如题,在这两天使用eclipse工具编译代码时,编译出来的class文件拿UE工具查看,版本为1.8版本的,而本地使用的tomcat版本是1.6的,运行中报错Unsupported major.minor version 52.0
JDK版本和Java编译器内部的版本号
J2SE 8 = 52,
J2SE 7 = 51,
J2SE 6.0 = 50,
J2SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45
看错误明知是jdk版本不正确,打出来的版本又运行不了,无奈上网查找相关文档,
拿UE工具查看编译出来的文件如下图:
如图位置,显示的是32,32为1.6版本的编译文件,而我这几天编译的文件一直显示的数字是34,对应的jdk为1.8,网上给出的JDK版本对应关系为:
版本号 | 对应十进制 | JDK版本号 |
2E | 46 | jdk1.2 |
2F | 47 | jdk1.3 |
30 | 48 | jdk1.4 |
31 | 49 | jdk1.5 |
32 | 50 | jdk1.6 |
33 | 51 | jdk1.7 |
34 | 52 | jdk1.8 |
了解了对应关系后,想到就知道,我编译的文件1.8的class在1.6的环境一定会报错,因此想到eclipse工具编译是否可以使用jdk1.8编译出JDK1.6版本的class文件,经过查找发现在java工程上右键,“Properties” - "JAVA Compiler"中如下配置:
首先,将"use default compiliance settings"的复选框的勾选去掉,然后将"Generated .class files compatibility" 和 "Source compatibility"两个选项修改为1.6,重新编译后,class文件就被编译为1.6版本的class文件,运行中将不再报错.