Unsupported major.minor version 51.0问题的原因与解决方法

问题一:

问题描述:本地项目导成jar文件之后,放到服务器上运行,一直报“Unsupported major.minor version 51.0”的错误。
问题原因:jar文件编译时的java compiler比服务器上的1.6的jdk高
解决方法:eclipse中,java build path配置的jdk版本、java compiler中配置的compiler compliance level都和服务器上的jdk版本设置成一致,重新导jar文件即可。


问题二:

问题描述:在eclipse中web项目,部署到eclipse里配置的tomcat服务器,启动一直报“Unsupported major.minor version 51.0”的错误。

问题原因:和问题一的原因类似,由于tomcat服务器配置的jdk版本为1.6,项目编译版本为1.7

解决方法:项目使用1.6版本进行编译或者将tomcat服务器的jdk配置成1.7或更高。


修改eclipse中tomcat server配置jdk的方法如下:

1、打开window--->preferences-->server--->runtime environment,选中右侧要修改的server,点击edit。

Unsupported major.minor version 51.0问题的原因与解决方法_第1张图片

2、选择或者点击installed Jres安装需要的jdk,然后点击完成即可,如下图:

Unsupported major.minor version 51.0问题的原因与解决方法_第2张图片





关于eclipse中设置jdk编译版本的方法,可以参考 eclipse配置JDK和设置编译版本的几种方法 http://blog.csdn.net/gnail_oug/article/details/53610768

关于查看class文件编译版本的方法,可以参考:如何查看class文件的jdk版本 http://blog.csdn.net/gnail_oug/article/details/47145047




说明:eclipse中,java build path配置的jdk版本,作用是开发的时候使用的jdk,就是你在eclipse中开发代码,可以导入哪个jdk版本里的类,如:使用jdk1.5就不能导入javax.annotation.Resource类,配置成1.6就可以import javax.annotation.Resource类;

java compiler compliance level中配置的编译版本,作用是*.java文件编译*.class文件使用的版本,导出的jar包的编译版本,如:将level设置成1.5,接口的实现的方法上面就不能加@Override注解,配置成1.6就能加@Override注解。上面的错误就是由于build path中配置1.7的JDK,java compiler compliance level中配置的1.7,但是服务器上是1.6的JDK引起的,导致编译所用的jdk(1.7)比运行所用的jdk(1.6)高而报错。




你可能感兴趣的:(javase,jdk)