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 版本統一起來,否則就會遇到很多編譯上的問題。
修改的地方:
- 開發時的設定:包括你的 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 版本都是一致的。