Java-“Unsupported major.minor version 51.0″的原因及解决方法

在一些同学通过Mac电脑的Eclipse中开发的一些Java请求的JMeter测试代码(有Jar包),放到远程的Linux服务器上用JMeter时就遇到了“Unsupported major.minor version 51.0”的错误信息。

原因:执行环境中的JRE版本与被执行代码的class文件不兼容,一本是因为编译Java代码时使用的JRE版本比代码运行环境的JRE版本要高。我们所遇到的问题正式这样,有的同学的Mac机上模式使用的Java 7,而远程Linux服务器上我们是默认使用Java 6.

Java版本的主版本号如下:

J2SE 8 = 52,
J2SE 7 = 51,
J2SE 6.0 = 50,
J2SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

解决方案有两个:

(1)将执行环境的Java调整为兼容的高版本(如Java 7)
下载新版Java,并设置如下的环境变量即可:

(2)将那些代码重新编译打包,编译为兼容较低版本的class文件(如Java 6)
比如,在Eclipse中,“project => Proerties => Java Compiler”,设置"Compiler compliance level"为执行环境的Java版本。
或者,直接用javac命令编译时,指定生成class文件兼容的Java版本:javac -source 1.6 HelloWorld.java

参考资料:
http://stackoverflow.com/questions/10382929/unsupported-major-minor-version-51-0
http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html

master

Stay hungry, stay foolish.

2 Comments

发表评论

邮箱地址不会被公开。 必填项已用*标注

*