intellj运行,java 不支持发行版本xxx 的问题

问题

在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文件

posted @ 2020-04-09 17:01  code906  阅读(4419)  评论(0编辑  收藏  举报