Spring开发中出现Unsupported major.minor version 51.0错误


        按照《Spring 3.x企业应用开发实战》中第二章的例子程序,在完成业务层的Service后,在applicationContext.xml中配置事务支持,总是会出现警告:

Exception 'com/swiee/dao/LoginLogDao : Unsupported major.minor version 51.0' applicationContext.xml /forumProj/src line 40 Spring AOP Problem

        百度之后发现是由于jdk版本的错误:程序编译的jdk版本比运行时jdk版本更高。我用的MyEclipse2013自带是1.6的jdk,我自己指定的是1.7。且在Preferences中我也指定了默认1.7,BuildPath中也是1.7, Project Facets中也是1.7, 不知道为什么还要报这个warning。

        我把Project Facets修改为1.6后,警告消失,难道是加入了Spring3.1的事务处理的原因?检查了一下org.springframework.aop下的Advisor.class,发现

            // Compiled from Advisor.java (version 1.5 : 49.0, no super bit)

        原来是用jdk1.5编译的版本(如下表)。

        在wildfly8上部署后,能正常运行,先暂时这样。




JDK 编译器版本

target 参数

十六进制 minor.major

十进制 minor.major

jdk1.1.8

不能带 target 参数

00 03 00 2D

45.3

jdk1.2.2

不带(默认为 -target 1.1)

00 03 00 2D

45.3

jdk1.2.2

-target 1.2

00 00 00 2E

46.0

jdk1.3.1_19

不带(默认为 -target 1.1)

00 03 00 2D

45.3

jdk1.3.1_19

-target 1.3

00 00 00 2F

47.0

j2sdk1.4.2_10

不带(默认为 -target 1.2)

00 00 00 2E

46.0

j2sdk1.4.2_10

-target 1.4

00 00 00 30

48.0

jdk1.5.0_11

不带(默认为 -target 1.5)

00 00 00 31

49.0

jdk1.5.0_11

-target 1.4 -source 1.4

00 00 00 30

48.0

jdk1.6.0_01

不带(默认为 -target 1.6)

00 00 00 32

50.0

jdk1.6.0_01

-target 1.5

00 00 00 31

49.0

jdk1.6.0_01

-target 1.4 -source 1.4

00 00 00 30

48.0

jdk1.7.0

不带(默认为 -target 1.6)

00 00 00 32

50.0

jdk1.7.0

-target 1.7

00 00 00 33

51.0

jdk1.7.0

-target 1.4 -source 1.4

00 00 00 30

48.0

Apache Harmony 5.0M3

不带(默认为 -target 1.2)

00 00 00 2E

46.0

Apache Harmony 5.0M3

-target 1.4

00 00 00 30

48.0



你可能感兴趣的:(java,spring,jdk)