错误:java:javacTask:源版本8需要目标版本1.8

Hob*_*ist 826 java intellij-idea java-8

使用IntelliJ IDE无法编译任何项目.以下设置的屏幕截图:

使用JDK:

http://gyazo.com/b6e32119af7b04090d890cad04db6373

项目SDK和语言级别:

http://gyazo.com/55a5fc9f7f2bb721a04780ce9d74eeab

语言水平:

http://gyazo.com/143bffad63fd89cafc231298729df2fc

有人有什么想法吗?

Wes*_*lor 1770

  1. 文件>设置>构建,执行,部署>编译器> Java编译器
  2. 目标字节码版本更改为您正在使用的模块的1.8.

如果你使用Maven

将编译器插件添加到pom.xml顶级project节点下:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

(从评论中提到.)

注意:如果您不介意重新导入项目,那么您真正需要做的就是更改pom并重新导入项目,然后IntelliJ将选择正确的设置,您不必手动更改它们.

  • 如果你在Mac上,它在Intellij IDEA>首选项...>构建,执行,部署> Java编译器下 (83认同)
  • 对于比2016.2更新的Intellij,还有一个地方需要检查:`项目结构 - >项目设置 - >模块 - > Denpendencies - >模块SDK`. (3认同)
  • 当您的 POM 层次结构超过两个级别并且您的编译器插件在父 POM 中定义时,IntelliJ 可能无法在最深层识别它。我说可能不会,因为对于其他一些模块来说,它确实如此,即使它们扩展了相同的父 POM。 (2认同)

Gre*_*zur 186

您需要转到Settings并在Java编译器下设置以下内容: 在此输入图像描述

还要检查项目设置


Ste*_*ner 113

这看起来就像Maven在没有正确配置编译器插件时生成的错误.这是Java 8编译器配置的示例.

<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<!-- ... -->

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

<!-- ... -->

</project>
Run Code Online (Sandbox Code Playgroud)

  • 对于像我这样的其他Maven新手,这应该在`project`,`build`,然后`plugins`下. (10认同)
  • 此外,如果配置了`<source> 1.8 </ source>`和`<target> 1.8 </ target>`,则可能发生上述错误. (3认同)

sno*_*lli 79

我找到的最快捷的方式:

  • 按:CTRL+ SHIFT+ A(适用于Mac + SHIFT+ A)
  • 类型: java compiler
  • 按: ENTER

在设置窗口中,将目标字节码设置为1.8

(或java9的9)

  • 这绝对适用于我(谢谢!)但我不明白为什么这与pom.xml,模块设置等中的不同... (2认同)

Lor*_*ton 26

有两种方法可以解决这个问题:

  1. 设置设置(File -> Settings -> Build, Execution, Deployment -> Java Compiler): 在此输入图像描述
  2. 添加构建部分到您的pom.xml: 在此输入图像描述


Mar*_*ter 14

关于Maven的许多答案都是正确的,但您不必直接配置插件.

就像在Apache Maven编译器插件的wiki页面上描述的那样,您可以设置插件使用的2个属性.

<project>
  [...]
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  [...]
</project>
Run Code Online (Sandbox Code Playgroud)

  • 右键单击pom.xml - > Maven - > Reimport后,就像魅力一样.这应该是Maven用户接受的答案. (4认同)
  • 你试过重新进口吗?因为对我来说它有效. (2认同)

Sam*_*num 11

我通过转到项目结构 - > 模块修复此问题,找到有问题的模块,单击依赖关系选项卡,切换Module SDKProject SDK.


Vis*_*hal 8

我只是通过将目标编译版本更改为1.8来修复它.在里面:

文件>>设置>>构建,执行,部署>>编译器>> Java编译器


Muh*_*man 6

您需要转到/.idea/compiler.xml并更改target为所需jdk级别。

在此处输入图片说明


Clo*_*oud 5

就我而言,我通过打开项目的.iml 文件(它位于项目根文件夹中,名称与项目名称相同)并将行更改<orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" /><orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />

我在此处的其他答案中配置了所有内容,但由于某种原因,Idea 错误地更新了 .iml 文件。

  • 即使您配置了所有菜单,有时 Intellij 似乎也不会更新配置文件。*使缓存无效并重新启动*(编辑配置文件后),对我有用。奇怪的。 (2认同)