zoukankan      html  css  js  c++  java
  • 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,遇到问题一定要自己查,多百度,问别人也不一定给你解答正确。自己解决问题的过程,也是获得更多知识的过程。

  • 相关阅读:
    yaf(3) 正则路由
    yaf(1) 配置文件
    PHP 分页URL设计
    smarty模版目录疑问
    yaf(5) smarty
    yaf(2) layout 自定义目录结构
    php 倒计时出现0的情况
    PHP 单一入口框架设计简析
    利用jquery.load()实现html框架效果
    yaf(4) Yaf_Loader()
  • 原文地址:https://www.cnblogs.com/xiaxiaoxuan/p/2938652.html
Copyright © 2011-2022 走看看