java环境变量的设置————Unsupported major.minor version 51.0错误

    昨天用ant打包文件时出现build失败,Unsupported major.minor version 51.0错误,百度一查是因为低版本的 JVM 无法加载高版本的 class 文件造成的。major.minor version 51.0,表示jdk版本为1.7(类似,50.0表示1.6,49.0表示1.5....),但是运行java -version的结果和javac -version的结果都是jdk1.6,build.xml文件里target和source指定的也是1.6,明明是一致的,肿么会产生高版本的 class 文件呢?后来想起来,以前给电脑装过jdk1.7,后来才装的1.6,所以,运行时是 jdk1.7,这才产生了高版本的 class 文件。哇,原来如此,命令行查询的结果根本就不准啊!解决方法很简单,找到path和classpath,把jdk1.7的路径删掉即可。只改一处不行哦~关掉dos窗口重新打开运行ant就成功啦!

     等等,这是用jdk1.6编译的,那我用1.7试试。于是依葫芦画瓢,把path和classpath里jdk1.6的路径删掉,换成jdk1.7的路径,又将build.xml文件里target和source指定为1.7,运行ant,结果还是错误,又是那个Unsupported major.minor version 51.0错误。神马情况?该改的我也改了,怎么版本还是不一致呢?继续百度环境变量的设置,肯定是忘记某处没改,JVM还是1.6。根据规范设置,首先定义JAVA_HOME变量,也就是jdk的安装目录,然后再将path设为%JAVA_HOME%\bin;classpath设为.\;%JAVA_HOME%\lib\td.jar;%JAVA_HOME%\lib\tools.jar;。这样,如果以后jdk有升级变化,值需要修改JAVA_HOME变量即可,又简单又安全。我照着重新设了JAVA_HOME,再运行ant,果然成功了。

综上,有几点小感悟:

1,要正确的运行java软件和工具的前提条件是版本一致或匹配,以免发生低版本的 JVM 无法加载高版本的 class 文件 的错误

2,环境变量的设置要符合规范,既简洁又便于修改。

3,命令行查询的java -version显示的jdk版本只是path里的,并不代表实际运行的jdk版本。

4,遇到问题一定要自己查,多百度,问别人也不一定给你解答正确。自己解决问题的过程,也是获得更多知识的过程。

posted on 2013-03-01 14:23  箫轩  阅读(17745)  评论(0编辑  收藏  举报

导航