异常信息如下:

[org.springframework.web.context.ContextLoader]Context initialization failed
org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [com.baikeyang.service.bike.impl.XABikeServiceImpl] for bean with name 'xaBikeService' defined in file [D:\Develop\Tomcat\apache-tomcat-7.0.40\wtpwebapps\youth\WEB-INF\classes\com\baikeyang\service\bike\impl\XABikeServiceImpl.class]: problem with class file or dependent class; nested exception is java.lang.UnsupportedClassVersionError: com/baikeyang/service/bike/impl/XABikeServiceImpl : Unsupported major.minor version 51.0 (unable to load class com.baikeyang.service.bike.impl.XABikeServiceImpl)
     at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1355)
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:628)
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:597)
     at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1445)
     at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:975)
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:752)
     at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
     at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)
     at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)
     at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
     at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4887)
     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5381)
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
     at java.util.concurrent.FutureTask.run(FutureTask.java:138)
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
     at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.UnsupportedClassVersionError: com/baikeyang/service/bike/impl/XABikeServiceImpl : Unsupported major.minor version 51.0 (unable to load class com.baikeyang.service.bike.impl.XABikeServiceImpl)
     at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2899)
     at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
     at org.springframework.util.ClassUtils.forName(ClassUtils.java:250)
     at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:394)
     at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1397)
     at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1344)
     ... 20 more
注意异常里面有一句话是这样的:Unsupported major.minor version 51.0,意思是 不支持的版本MAJOR.MINOR 51.0。
查阅了部分资料得知 major.minor version 的一些信息(具体的更多信息可以到Oracle的官方网站上去搜刮哟):
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
关于major.minor更多的信息大家可以去的Oracle官网去查看哦。
这个异常是由于 开发项目下使用的jdk版本和项目运行服务器jdk版本不同 而导致。解决方式就是使开发项目JDK版本和运行服务器的JDK版本保持一致。在这里就以我自己机子的Eclipse 和 Tomcat 为例来进行说明了。
1、设置Eclipse的JDK为1.7
2、设置项目的 java compiler改为jdk1.7
修改项目java compiler的方法:在项目点右键->选择Perperties->在出现的菜单中选择Java Compiler->最上面选中Enable project Specific setting->然后将jdk改为jdk1.7->完成。
3、设置Tomcat的JDK版本(如果配置了Java的环境变量且环境变量中配置的Java版本也是1.7时,不用进行第三步的操作也是可以运行的。当然,我的机子上可以并不能保证所有机子都有效,因为每人机子配置都有些差异性。所以我还是建议各位按照第三步操作配置,以防万一嘛。):
搞定,然后重新编译下你的项目,Tomcat启动成功,无异常提示。

标签: CannotLoadBeanClassException异常解决, Unsupported major.minor version 51.0解决方法, Java major.minor

已有 7 条评论

  1. 增达信购

    我对你博客的爱,你永远不会明白!

  2. 亚洲***

    你好,这篇文章我觉得非常有意思,请问博主可以让我转载吗?我会保留原文出处的链接以及和你的姓名.

  3. 增达信购

    偶然来访,受益良多!

  4. 广告任务网

    认真拜读中……

  5. 尚爱思笑话

    感觉很不错的样子!

  6. 米表

    随便看看,随便转转!

  7. 蒂欧娜

    风吹过,我来过!

添加新评论