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新的。