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

时间:2015-04-27 06:24:28

标签: java intellij-idea java-8

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

使用过JDK:

http://gyazo.com/b6e32119af7b04090d890cad04db6373

项目SDK和语言级别:

http://gyazo.com/55a5fc9f7f2bb721a04780ce9d74eeab

语言水平:

http://gyazo.com/143bffad63fd89cafc231298729df2fc

有人有什么想法吗?

23 个答案:

答案 0 :(得分:1620)

  1. 文件>设置>构建,执行,部署>编译器> Java编译器
  2. 目标字节码版本更改为您正在使用的模块的 1.8
  3. 如果您使用的是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>
    

    (从评论中提出。)

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

答案 1 :(得分:166)

您需要转到“设置”并在Java编译器下设置以下内容: enter image description here

还要检查项目设置

答案 2 :(得分:107)

这看起来就像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>

答案 3 :(得分:69)

我发现最快捷的方式:

  • 按: CTRL + SHIFT + A (对于Mac + SHIFT + A
  • 输入:java compiler
  • 按: ENTER

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

(或 9 for java9)

答案 4 :(得分:25)

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

  1. 设置设置(File -> Settings -> Build, Execution, Deployment -> Java Compiler)enter image description here
  2. pom.xml添加构建部分: enter image description here

答案 5 :(得分:13)

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

如同在Apache Maven编译器插件的wiki page中所述,您只需设置插件使用的2个属性。

<project>
  [...]
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  [...]
</project>

答案 6 :(得分:11)

我通过转到项目结构 - &gt;来修复此问题。 模块,找到相关模块,点击依赖关系标签,将Module SDK更改为Project SDK

答案 7 :(得分:8)

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

档案&gt;&gt;设置&gt;&gt;构建,执行,部署&gt;&gt;编译器&gt;&gt; Java编译器

答案 8 :(得分:4)

您需要转到/.idea/compiler.xml并将target更改为所需的jdk级别。 enter image description here

答案 9 :(得分:3)

我通过修改我的POM文件来修复它。请注意最高投票答案下的最后评论。

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <encoding>UTF-8</encoding>
        </configuration>
</plugin>

来源必须与目标匹配。

答案 10 :(得分:3)

在我的情况下,我通过打开项目的 .iml文件来修复此问题(它位于项目根文件夹中,其名称与项目名称相同)并更改行<orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" /><orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />

我已将所有配置配置为其他答案,但由于某种原因,Idea更新了.iml文件错误。

答案 11 :(得分:3)

我只是重新导入了Maven按钮,然后错误消失了。

enter image description here

答案 12 :(得分:1)

在compiler.xml文件下,您将找到:

<bytecodeTargetLevel>
  <module name="your_project_name_main" target="1.8" />
  <module name="your_project_name_test" target="1.8" />
</bytecodeTargetLevel>

您可以将目标值从旧版本更改为新版本,我需要将其从1.5更改为1.8

答案 13 :(得分:1)

我只是花了一段时间来解决同样的问题。 对我有用的唯一不是使用构建的mvn(3.3.9),而是将其指向外部下载版本(3.5.0)。最后,项目开始了,一切都很好。

答案 14 :(得分:1)

如果您使用的是Android-studio 1.3,请按照以下步骤进行操作 -

转到文件 - 项目结构

模块 - 应用 - 属性标签下,选择 来源兼容性 - 1.8

目标兼容性 - 1.8

你很高兴。

答案 15 :(得分:0)

Intellij ,使用 Maven ,您必须检查Intellij是否已自动导入您的项目。 您可以通过单击编辑器右侧的Maven选项卡进行检查。

enter image description here

如果您的项目不在此处,请点击pom.xml添加+文件。

显然,该项目还必须具有相关的<build/>

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

答案 16 :(得分:0)

如果其他答案都不起作用,请查看您的模块SDK

在我将项目SDK更新为1.8,将Javac编译器更新为1.8等之后,我弹出了这个错误。对我来说问题的设置是“模块SDK”。

(在Linux上)转到File > Project Structure...,然后在打开的窗口中,选择Modules下的Project Settings。从列表中选择有问题的模块,然后选择Dependencies标签,确保Module SDK设置正确。

答案 17 :(得分:0)

我已经检查了上述所有内容,但错误仍然存​​在。

但重新导入所有maven项目(Maven Projects面板中的重新加载按钮)在我的情况下有效。

答案 18 :(得分:0)

解决问题非常简单。您必须在İdea项目中打开 .idea / compiler.xml 文件并

您应该编写适当的目标版本

答案 19 :(得分:0)

不要忘记为模块设置依赖项: enter image description here

答案 20 :(得分:0)

对我来说,问题是Maven无法找到正确的配置,因为这些项目是在父pom中指定的。

更改文件 - &gt;设置 - &gt;构建,执行,部署 - &gt; Maven - &gt;用户设置文件指向我的自定义设置,并使用正确的存储库修复了原本隐藏的问题。

通过帮助找到问题 - &gt;显示登录资源管理器 - &gt;点击日志文件,之前只有标题中的错误和&#34; java.lang.NullPointerException&#34;在控制台中。

答案 21 :(得分:0)

在您的Gradle应用级文件>> compileOptions中添加这两行

android {
  compileOptions {
    ...
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    ...
   }
}

答案 22 :(得分:0)

如果您的模块配置有注释处理器,而其他模块未配置,则会出现此问题。为所有模块设置相同的配置,因为它具有循环依赖性。