标签:
java本地代码运行正常,部署到服务器无法运行,错误如下:
1 Caused by: java.lang.UnsupportedClassVersionError: com/teshehui/cms/activity/service/impl/ActivityServiceImpl : Unsupported major.minor version 51.0 (unable to load class com.teshehui.cms.activity.service.impl.ActivityServiceImpl) 2 at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2858) 3 at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159) 4 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647) 5 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) 6 at org.springframework.util.ClassUtils.forName(ClassUtils.java:255) 7 at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:416) 8 at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1302) 9 at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1273) 10 ... 59 more
最后发现是编译器版本问题。编译代码的编译器级别是 1.7 ,而服务器运行环境的jdk版本是1.6,无法向上兼容,所以得更改编译器级别。
如何根据编译出来的.class 文件判断版本?
1 major minor Java platform version 2 45 3 1.0 3 45 3 1.1 4 46 0 1.2 5 47 0 1.3 6 48 0 1.4 7 49 0 1.5 8 50 0 1.6 9 51 0 1.7
从上可以看出,我使用的编译器版本是1.7
用文本本机器打开.class文件,以二进制方式查看,我们可以看到第八个字节是50,即编译版本已是1.6
参考资料:
http://blog.csdn.net/zhouyong0/article/details/7402161
http://wangsong76.iteye.com/blog/264071
jdk版本及编译版本导致服务器部署UnsupportedClassVersionError错误
标签:
原文地址:http://www.cnblogs.com/xunux/p/4501615.html