如題,在這兩天使用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文件,運行中將不再報錯.
