当使用IntelliJ IDEA运行JUnit测试时,我得到

我该如何纠正呢?

使用SDK 1.7 模块语言级别为1.7

Maven构建工作正常。(这就是为什么我在IDEA配置问题上相信这一点)


当前回答

我找到了另一种遇到这种错误的方法。如果您一直在重新组织目录结构,并且其中一个poms指向不再配置javac的旧父目录(因为该配置已移动到中间层),就会出现这种情况。如果发生这种情况,顶层默认为1.5,行为不端的底层pom继承它。

因此,当您看到这个错误时,要检查的另一件事是您的pom结构是否与目录结构正确匹配。

其他回答

如果之前所有的解决方案都不适合你(这是我的情况),你可以删除intellij配置文件:

project_directory / .idea / compiler.xml project_directory / .idea / encodings.xml project_directory / .idea / misc.xml project_directory / .idea / modules.xml project_directory / .idea / vcs.xml project_directory / .idea / workspace.xml 等。

Intellij稍后将重新生成新的。 但是,要小心,这也会删除项目上的所有intellij配置(即:调试模式的配置,…)

我已经在设置>编译器> java编译器中找到了必需的选项('目标字节码版本')(intelij idea 12.1.3)

您查看过您的构建配置了吗?如果您使用maven 3和JDK 7,它应该是这样的

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

修改下面路径下项目的编译器设置文件,将'target'改为1.7:

/项目/ .idea / compiler.xml

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

如果它是一个Gradle项目,在你的构建中。Gradle文件,搜索以下设置:

sourceCompatibility = "xx"
targetCompatibility = "xx"

对于根构建中的所有子项目。Gradle文件,你可以放:

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

虽然你可以在Idea >设置中手动设置语言级别,但如果它是一个Gradle项目,Idea会自动从Gradle设置中同步模块。iml文件(用Idea 15+测试)。因此,当gradle刷新时,所有手动更改都会被覆盖。

根据Gradle文档,如果没有设置这些,则使用当前的JVM配置。