• JDK编译环境和运行环境版本不一致:unsupported major.minor version 52.0


    java  -version命令查看的是运行环境下的jdk版本

    工程项目中Build Path下引用的是编译环境下的jdk版本

    出现这种情况根本原因就是运行环境与编译环境jdk版本不一致。

    第一步:首先确认工程项目中加入jdk版本与系统运行环境中使用jdk版本是否一致

    工程项目中加入的jdk版本,这里查看时以工程项目下的Properties选项卡为准,而不是工作空间下的Properties选项卡

    系统运行环境使用的jdk版本

     

    第二步:若一致,多半是以下几种情况

    具体情况有:

    A、切换jdk版本后,一些设置未复原。

    建工程前统一调整,工作空间下window---preferences

    以工程项目的为准,“项目右键”----Build Path---Configure  Build  Path

     检查Tomcat使用到jdk版本

     若使用了其他编译插件也应当检查,以Ant为例,同样建议以工程项目配置为准

     工作空间中查看Ant使用到jdk版本

    建议以查看项目工程为准,项目工程查看Ant使用到的jdk版本,此处文件名可能不同“build.xml右键”---Run  As---External  Tools  Configurations

    B、切换jdk版本后,缓存的编译后的class文件未清除掉,导致启动时可能加载的是之前高版本jdk编译的class文件,找到清除掉重新编译即可。(我碰到就这种情况,高版本jdk编译的class文件在build文件夹下)

    C、用到的某个版本的jar可能是高版本jdk编译打包的,更换低版本jar或者提高你运行环境jdk版本。

    教你如何查看jar版本信息,反编译

    Java编译器内部的版本号,版本对应信息如下:

      Unsupported major.minor version 52.0 对应于 JDK1.8(JRE1.8) 

      Unsupported major.minor version 51.0 对应于 JDK1.7(JRE1.7) 

      Unsupported major.minor version 50.0 对应于 JDK1.6(JRE1.6) 

      Unsupported major.minor version 49.0 对应于 JDK1.5(JRE1.5) 

    出现这种问题都是运行环境jdk版本低于编译环境jdk版本,因为高版本支持低版本

     总结:

    1、出现这种问题都是运行环境jdk版本低于编译环境jdk版本,因为高版本支持低版本;

    2、尽量保证工作空间的选项卡preferences与工程项目的选项卡preferences配置一致

    3、以工程项目配置为准

    4、尽可能检查项目工程与编译工具所有引用的到jdk的地方

  • 相关阅读:
    【BZOJ2666】[cqoi2012]组装 贪心
    【BZOJ1018】[SHOI2008]堵塞的交通traffic 线段树
    【BZOJ3997】[TJOI2015]组合数学 最长反链
    【BZOJ4052】[Cerc2013]Magical GCD 乱搞
    【BZOJ4059】[Cerc2012]Non-boring sequences 分治
    【BZOJ2529】[Poi2011]Sticks 贪心
    【BZOJ4264】小C找朋友 随机化
    【BZOJ4966】总统选举 线段树+随机化
    【BZOJ3796】Mushroom追妹纸 二分+hash
    【BZOJ1146】[CTSC2008]网络管理Network 树状数组+DFS序+主席树
  • 原文地址:https://www.cnblogs.com/zhaochi/p/12676154.html
Copyright © 2020-2023  润新知