IDEA:javac:source release 1.7需要目标版本1.7

当运行一个JUnittesting,使用IntelliJ IDEA,我得到了

在这里输入图像描述

我怎样才能纠正这一点?

  • 使用SDK 1.7
  • 模块语言级别是1.7

Maven构build工作正常。 (这就是为什么我相信这在IDEAconfiguration问题)

您很有可能在这里从Maven导入了不正确的编译器选项:

编译器选项

还要检查屏幕截图中概述的项目和模块字节码( 目标 )版本设置。

语言级别configuration的其他地方:

  • 项目结构| 项目

项目

  • 项目结构| 模块(检查每个模块)| 来源

来源

Maven的默认语言级别1.5 (5.0),您将在上面的屏幕截图中看到此版本为Module语言级别。

这可以在pom.xml使用maven-compiler-pluginconfiguration进行更改:

 <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> [...] </project> 

要么

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

在Maven Projects工具窗口中重新导入 Maven项目之后,IntelliJ IDEA将会遵循这个设置:

再进口

IntelliJ 15,2016和2017

类似于下面讨论的IntelliJ 13&14,但在Settings / Preferences面板中有一个额外的级别: Settings > Build,Execution,Deployment > Compiler > Java Compiler

在这里输入图像描述

IntelliJ 13&14

在IntelliJ 13和14,检查设置>编译器> Java编译器用户界面,以确保你没有针对你的模块不同的字节码版本。

在这里输入图像描述

IntelliJ IDEA 14.1中 ,“目标字节码版本”位于不同的地方。

以下更改为我工作:

文件>设置…>构build,执行,部署>编译器> Java编译器 :将目标字节码版本从1.5更改为1.8

在这里输入图像描述

在这里输入图像描述

如果你使用maven 3和JDK 7,你看过你的构buildconfiguration吗?

 <build> <finalName>SpringApp</finalName> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> ... </plugins> ... </build> 

我遇到了这个问题,修复方法是去项目设置>模块>点击特定的模块>依赖关系选项卡。 我注意到模块SDK仍然设置在1.6,我把它改为1.7,它的工作。

我在设置>编译器> java编译器中find了需要的选项('目标字节码版本')在我的情况下(intelij idea 12.1.3)

在下面的path中修改项目的编译器设置文件,并将“target”更改为1.7:

/project/.idea/compiler.xml

 <bytecodeTargetLevel> <module name="project-name" target="1.7" /> </bytecodeTargetLevel> 

从一个时刻到另一个,我也没有一个明确的理由得到这个错误。 我改变了编译器/模块等的各种设置。但是最后我通过重新导入Maven项目重新创build了IntelliJ项目,问题解决了。 我认为这是一个错误。

IntelliJ 12 129.961

我通过将该字段设置为空来解决它:

设置>编译器> Java编译器>项目字节码版本

比IntelliJ使用JDK默认版本。

从IntelliJ IDEA 14轻微升级到v14.1之后,我已经达到了这个目标。 对我来说,更改顶部/父母的编辑帮助,然后单击重新导入Maven(如果它不是自动的)。

但它可能只是右键单击模块/聚合/父模块和Maven – >重新导入。

我解决了波纹pipe的方法

文件>>项目结构>>项目>>项目语言级别 – >设置正确的版本(例如1.5)

检查.idea / misc.xml有时您需要手动更改languageLevel =“JDK_1_X”属性

我发现另一种方法来解决这个错误。 你可以得到这个,如果你已经重新组织你的目录结构,并且你的一个poms指向不再configurationjavac(因为configuration被移动到中间级别)的旧父节点。 如果发生这种情况,最高级别默认为1.5,行为不端的低级别pominheritance它。

所以当你看到这个错误时要检查另外一个东西,那就是你的pom结构正确地匹配你的目录结构。

如果Maven构build工作正常,则尝试同步Maven和IntelliJ IDEA项目的结构。

在Maven工具窗口中 ,点击刷新button 刷新 。 按下这个button,IntelliJ IDEAparsingMaven工具窗口中的项目结构。

请注意,如果您使用EAP构build,这可能无济于事,因为Maven同步function有时可能会被破坏。

如果它是Gradle项目,请在build.gradle文件中search以下设置:

 sourceCompatibility = "xx" targetCompatibility = "xx" 

对于所有的subrpojects,在你的根build.gradle文件中,你可以把:

 subprojects { project -> sourceCompatibility = "1.7" targetCompatibility = "1.7" } 

尽pipe您可以在意见>设置中手动设置语言级别,但如果它是Gradle项目,Idea会自动同步Gradle设置中的模块.iml文件(使用Idea 15+进行testing)。 因此,在刷新gradle时,所有手动更改都会被覆盖。

基于Gradle文档 ,如果没有设置,则使用当前的JVMconfiguration。

确保select正确的依赖关系。 文件>项目结构

select您的项目并导航到Dependencies选项卡。 从下拉菜单中select正确的依赖关系或创build新的。