错误:java:javac任务:源版本8需要目标版本1.8

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

使用JDK:

http://gyazo.com/b6e32119af7b04090d890cad04db6373

项目SDK和语言级别:

http://gyazo.com/55a5fc9f7f2bb721a04780ce9d74eeab

语言水平:

http://gyazo.com/143bffad63fd89cafc231298729df2fc

有人有什么想法吗?

486381 次浏览

这看起来像是Maven在没有正确配置编译器插件时生成的那种错误。这是一个Java8编译器配置的示例。

<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>
  1. 转到文件>设置>构建,执行,部署>编译器>Java编译器如果在Mac上,则低于Intellij IDEA>首选项…>构建、执行、部署>Java编译器
  2. 将您正在处理的模块的目标字节码版本更改为1.8

如果您正在使用Maven

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

<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将获取正确的设置,您不必手动更改它们。

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

同时检查项目设置

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

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

我找到的最快方法:

  • 按:CTRL+SHIFT+一个(适用于Mac+SHIFT+一个
  • type:java compiler
  • 按:输入

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

(或9为java9)

我通过项目结构->模块修复了这个问题,找到有问题的模块,单击依赖关系选项卡,将Module SDK更改为Project SDK

我通过修改我的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>

源必须与目标匹配。

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

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

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

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

许多关于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>

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

更改文件->设置->构建,执行,部署->Maven->用户设置文件以指向具有适当存储库的自定义设置,修复了隐藏的问题。

通过帮助->在资源管理器中显示日志->单击日志文件发现了这个问题,而以前只有标题中的错误和控制台中的“java.lang.NullPointerException”。

在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

解决问题很简单。您必须在您的idea项目上打开.构想/compiler.xml文件并

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

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

在此处输入图片描述

如果您的项目不在此处,请单击+添加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>

如果您正在使用Android Studio 1.3,请按照以下步骤操作-

转到文件-项目结构

模块-应用程序-属性选项卡下,选择源代码兼容性-1.8

目标兼容性-1.8

你可以走了。

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

在此处输入图片描述

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

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

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

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

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

我一直在为同样的问题苦苦挣扎。唯一对我有用的不是使用内置的mvn(3.3.9),而是将其指向外部下载的版本(3.5.0)。最后,项目打开了,一切都很好。

不要忘记设置模块的依赖关系:输入图片描述

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

在此处输入图片描述

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

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

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

下面的代码在我身边运行良好。我只是将其添加到pom.xml文件中。

<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>