問題
在Intellij idea中新建了一個Maven項目,運行時報錯如下:Error : java 不支持發行版本xxx
解決
假如本地運行用的是JDK12,報錯應該是項目編譯配置使用的Java版本不對,需要檢查一下項目及環境使用的Java編譯版本配置。
需要修改Intellij四個地方
根據官方文檔
Code | Descriotion | LANGUAGE_LEVEL |
---|---|---|
1.3 | Plain old Java | JDK_1_3 |
1.4 | 'assert' keyword | JDK_1_4 |
5 | 'enum' keyword, generics, autoboxing etc. | JDK_1_5 |
6 | @Override in interfaces | JDK_1_6 |
7 | Diamonds, ARM, multi-catch etc. | JDK_1_7 |
8 | Lambdas, type annotations etc. | JDK_1_8 |
9 | Modules, private methods in interfaces etc. | JDK_1_9 |
10 | Local variable type inference | JDK_10 |
11 | Local variable syntax for lambda parameters | JDK_11 |
12 | No new language features | JDK_12 |
12(Preview) | Switch expressions | JDK_12_PREVIEW |
13 | No new language features | JDK_13 |
13(Preview) | Switch expressions, text blocks | JDK_13_PREVIEW |
X | Experimental features | JDK_X |
一、
在Intellij中點擊“File” -->“Project Structure”,看一下“Project”和“Module”欄目中Java版本是否與本地一致:
二、
在Intellij中點擊“File” -->“Project Structure”,看一下“Project”和“Module”欄目中Java版本是否與本地一致:
三、
點擊“Settings”-->“Bulid, Execution,Deployment”-->“Java Compiler”,Target bytecode version設為本地Java版本。(可以在Default Settings中把Project bytecode version 一勞永逸地配置成本地Java版本)
四、
如果上述配置完,還有問題。
可能jdk的版本可能會被maven項目覆蓋了。於是在 pom.xml 文件中,我們指定編譯器的jdk版本。
在maven的文件下配置,如果只希望在單個工程中運行,則在單個工程對應maven文件中配置,如果需要全局,則在全局的maven文件中配置
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration> <!--讓編譯器使用本地的13版本jdk-->
<source>13</source>
<target>13</target>
</configuration>
</plugin>
把上面這一串代碼直接丟到以下代碼塊中就可以(沒有build模塊就自己寫)。在復制時要注意 maven-compiler-plugin 的版本,如果版本不同就在 version 里修改。
<build>
<plugins>
...
</plugins>
</build>
五、
如果還有問題,則可能工程內還有其他配置了運行環境的文件,如xml、iml文件