异常信息如下:
[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启动成功,无异常提示。
我对你博客的爱,你永远不会明白!
你好,这篇文章我觉得非常有意思,请问博主可以让我转载吗?我会保留原文出处的链接以及和你的姓名.
偶然来访,受益良多!
认真拜读中……
感觉很不错的样子!
随便看看,随便转转!
风吹过,我来过!