1. 程式人生 > >java版本升級異常Unsupported major.minor version 52.0處理

java版本升級異常Unsupported major.minor version 52.0處理

一、錯誤現象:

當改變了jdk版本時,在編譯Java時,會遇到Unsupported major.minor version錯誤。 
錯誤資訊如下 :

Unsupported major.minor version 52.0 (我在jdk1.7 升級1.8切換時就遇到了這個錯誤)

Unsupported major.minor version 51.0 

Unsupported major.minor version 50.0 
Unsupported major.minor version 49.0 (我在jdk1.4 和1.5切換時就遇到了這個錯誤) 
Unsupported major.minor version 48.0

二、錯誤原因:

類似錯誤均屬於Java版本問題,即JDK版本過低,只要選擇相對應的JDK版本編譯即可。 
48,49,50是Java編譯器內部的版本號: 
Unsupported major.minor version 50.0 對應於 JDK1.6(JRE1.6) 
Unsupported major.minor version 49.0 對應於 JDK1.5(JRE1.5) 
Unsupported major.minor version 48.0 對應於 JDK1.4(JRE1.4)

三、出錯情況(Maven情況)

編譯的時候在 pom.xml 檔案中指定了編譯的版本1.8,但是在執行的時候在 Eclipse 裡面執行的時候用的是預設版本 1.7(跟編譯時版本不一致,比編譯版本要低)

編譯 pom.xml 檔案 jdk 設定:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.2</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target
>
<encoding>${project.build.sourceEncoding}</encoding> </configuration> </plugin>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

執行時設定 jetty:run: 
maven執行設定(預設情況下 JRE 是預設值,需要我們手動去修改它):

這裡寫圖片描述

預設JRE設定(未手動修改之前) 
這裡寫圖片描述

手動修改 JRE 版本 
這裡寫圖片描述

從上面可以看出來,我在使用 maven 打包的時候使用的是 jdk1.8執行的時候卻使用的是jdk1.7,所以才會報出上面的錯誤。

因此在進行 maven 的開發,打包,和執行的時候要注意:如果你的jdk版本跟預設的版本不一致,那麼你需要手動的把它們的 jdk 版本統一起來,否則就會遇到很多編譯上的問題。

修改的地方:

  1. 開發時的設定:包括你的 buildPath 設定,compiler設定。
           

      2.pom.xml 中maven-compiler-plugin 設定.

       

     3.工程的Project Facets中的java版本,如下圖:

      

 4.包括你在開發環境中執行時候的 jdk 版本設定(在 Run->Run Configurations… 裡面,每一個執行的例項都可以設定 JRE 的版本),以及真實生產環境執行時的 版本設定

 如下圖

這裡寫圖片描述

5.如果用到eclipse中的maven外掛編譯打包web工程的話,也需要在maven外掛執行目錄修改jdk的版本


6.如果是Eclispe中tomcat伺服器,則還需修改tomcat所引用的jdk版本


擴充套件: 
大部分情況下我們都不需要修改 Run Configurations… 這個引數,那是因為大部分情況下我們開發時 JDK 版本、執行時的JDK版本、還有我們開發環境的預設 JDK 版本都是一致的。