java.lang.UnsupportedClassVersionError: Unsupported major.minor version 51.0
原因:專案編譯版本 (如 Java 7/51.0) 與執行環境 JRE 版本不一致。
Window → Preferences → Java → Installed JREs → Add 選擇 JDK 目錄 (非 JRE)Window → Preferences → Java → Compiler → Compiler compliance level 設為目標版本 (如 1.7/1.8)Properties → Java Compiler 勾選 Enable project specific settings,設定相同版本Properties → Java Build Path → Libraries → JRE System Library → Edit 選擇工作區預設或指定 JRE-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.
M2_HOME = D:\Apps\apache-maven-3.3.1 (你的 Maven 安裝目錄)
Window → Preferences → Java → Installed JREs → Edit,在 Default VM arguments 加入:
-Dmaven.multiModuleProjectDirectory=${M2_HOME}
mvn -version 確認輸出正確java compiler level does not match the version of the installed java project facet
.settings/org.eclipse.wst.common.project.facet.core.xmlversion 屬性:
<installed facet="java" version="1.7"/> <!-- 改為專案實際使用版本 -->
| 錯誤 | 核心衝突 | 修正點 |
|---|---|---|
| UnsupportedClassVersionError | 編譯版本 ≠ 執行版本 | 統一 JDK/JRE/Compiler 版本 |
| M2_HOME not set | Maven 家目錄未註冊 | 環境變數 + IDE VM 參數 |
| Facet version mismatch | 專案元資料 ≠ 編譯器設定 | 修正 .settings XML |
maven-compiler-plugin 在 POM 明確宣告版本:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>11</source>
<target>11</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
.mvn/jvm.config 專案級 JVM 參數 (Maven 3.3.1+)