前言
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
创建一个JDK 5的Java项目
Run Configurations中设置JRE为1.5
修改项目的JDK版本为JDK 7
运行项目,成功报错!
切换Run Configurations的JRE为1.7以上,报错解决!
重现二:Tomcat
创建一个JDK 5的Java项目
创建一个JRE为1.5的tomcat
修改项目的JDK版本为JDK 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也是类似的解决方案。

posted on 2020-04-23 12:45  京华烟民  阅读(482)  评论(0编辑  收藏  举报