Unsupported major.minor version 51.0解决办法,长期记录各种jdk疑难杂症

7 篇文章 0 订阅

更新记录
  • 2019-7-29 新增oracle的报错重现
  • 2019-7-27 重写
  • 2018-7-5 初稿
前言

18年碰到这个错误的时候,折腾了许久,当时就记下博客。后来我发现无论自己,还是是同事或是博友,都经常在这个错误上踩坑。所以有必要梳理下报错的原因并重现报错,以免以后再踩坑。

Version和JDK版本的对应关系:

52.0 -> 8.0
51.0 -> 7.0
50.0 -> 1.6
49.0 -> 1.5

原因

低版本JDK运行高版本JDK编译的class类。
比如说,报错是51.0,说明项目的JDK版本是JDK 7,使用了低于JDK 7的版本去运行该项目。

重现(基于eclipse)
  • 重现一:Java
  1. 创建一个JDK 5的Java项目
  2. Run Configurations中设置JRE为1.5
  3. 修改项目的JDK版本为JDK 7
  4. 运行项目,成功报错!
  5. 切换Run Configurations的JRE为1.7以上,报错解决!
  • 重现二:Tomcat
  1. 创建一个JDK 5的Java项目
  2. 创建一个JRE为1.5的tomcat
  3. 修改项目的JDK版本为JDK 5
  4. 运行项目,成功报错!
  5. Server -> Runtime Environment切换tomcat的JRE为1.7以上,报错解决!(如果使用tomcat插件:那么在Tomcat -> JVMSettings中修改)
  • 重现三:Oracle
    最近在部署生产的一个项目,报了51.0错误,生产tomcat使用的是JDK 6,Oracle驱动jar包为ojdbc7,替换成ojdbc6以下的版本就不会报错了。
    注:Oracle的驱动版本和JDk的对应关系:
    ojdbc14 -> JDK 4
    ojdbc5 -> JDK 5
    ojdbc6 -> JDK 6
  • 重现四:Maven(评论里的做法可以参考下)
补充

这个错误Failed to write core dump. Minidumps are not enabled by default on client versions of Windows也是类似的解决方案。

  • 19
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值