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,遇到問題一定要自己查,多百度,問別人也不一定給你解答正確。自己解決問題的過程,也是獲得更多知識的過程。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM