jfinal启动报错Unsupported major.minor version 51.0原因深入分析

导入了一个工程,使用了jfinal框架,部署到tomcat,启动之后,发现报如下错误

java.lang.UnsupportedClassVersionError: com/jfinal/core/JFinalFilter : Unsupported major.minor version 51.0 (unable to load class com.jfinal.core.JFinalFilter)

.................................................................

解决办法:更换tomcat的jre版本,换成1.7+  windows 环境下的tomcat 更改java_home;eclipse中见下图。


分析过程:Mirror 51直觉应该是jdk版本的问题,原因是:使用了低版本的jdk加载了高版本的class文件,百度查找都说更改java compiler与项目使用的jdk保持一致,但更改之后仍然报错,启动tomcat报错,于是找到了jfinal jar包中的这个class文件,发现是jdk1.7编译的,感觉问题应该出在tomcat 所使用的jdk,于是将windows中java_home改为1.8版本的jdk(jdk版本向下兼容),运行正常,没有报错,于是立马想到肯定是eclipse中tomcat使用的jdk版本低于1.7,于是将其改成1.8后,eclipse中运行项目也正常。

PS开源项目发布的jar包,居然使用1.7编译,这导致使用1.6版本的报错,建议为了兼容性,jFinal应该使用1.6编译,至少我使用的spring从来没出现过这种问题。

错误还原:

public class TestHello{
	 public static void main(String[] args) {
		System.out.println("Test Hello");
	}
}
此段java代码,使用jdk1.8编译,放在jdk1.6加载就会出现以下错误   原因是:jdk向下兼容性,低版本的不能加载高版本的class


minor版本对应:

jdk1.8 minor version:52

jdk1.7 minor version:51

jdk1.6 minor version:50

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值