zoukankan      html  css  js  c++  java
  • jdk版本及编译版本导致服务器部署UnsupportedClassVersionError错误

    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

  • 相关阅读:
    PE格式第五讲,手工添加节表
    PE格式第四讲,数据目录表之导入表,以及IAT表
    PE格式第三讲扩展,VA,RVA,FA(RAW),模块地址的概念
    PE文件格式详解,第三讲,可选头文件格式,以及节表
    PE文件格式详解,第二讲,NT头文件格式,以及文件头格式
    LVS
    Haproxy
    Nginx
    MySQL入门第一天——概述、数据表与约束操作
    NoSQL入门第五天——Java连接与整合操作
  • 原文地址:https://www.cnblogs.com/xunux/p/4501615.html
Copyright © 2011-2022 走看看