502

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

在此处输入图像描述

我该如何纠正?

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

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

4

18 回答 18

767

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

编译器选项

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

其他配置源语言级别的地方:

  • 项目结构 | 项目

项目

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

来源

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

这可以使用里面的 maven-compiler-plugin配置来改变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>
  [...]
</project>

或者

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

在Maven 项目工具窗口中重新导入Maven 项目后,IntelliJ IDEA 将遵循此设置:

重新导入

于 2012-10-15T17:26:27.350 回答
359

IntelliJ 15、2016 和 2017

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

在此处输入图像描述

智能 13 和 14

在 IntelliJ 13 和 14 中,检查Settings > Compiler > Java Compiler UI 以确保您没有针对模块中的不同字节码版本。

在此处输入图像描述

于 2014-01-18T21:02:30.467 回答
62

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

以下更改对我有用:

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

在此处输入图像描述

在此处输入图像描述

于 2015-04-07T22:12:01.553 回答
42

如果您使用 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>
于 2013-08-25T11:29:45.997 回答
23

我遇到了这个问题,解决方法是转到项目设置 > 模块 > 单击特定模块 > 依赖项选项卡。我注意到模块 SDK 仍然设置为 1.6,我将其更改为 1.7 并且它工作。

于 2012-12-13T04:20:09.930 回答
15

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

于 2013-06-15T10:57:29.253 回答
10

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

/project/.idea/compiler.xml

<bytecodeTargetLevel>
  <module name="project-name" target="1.7" />
</bytecodeTargetLevel>
于 2015-06-08T14:14:17.240 回答
5

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

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

比 IntelliJ 使用 JDK 默认版本。

于 2014-12-20T12:08:13.193 回答
4

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

智能 12 129.961

于 2013-07-20T09:31:40.880 回答
4

在从 IntelliJ IDEA 14 小幅升级到 v14.1 之后,我就遇到了这个问题。对我来说,更改顶部/父 pom 的编辑有帮助,然后单击重新导入 Maven(如果它不是自动的)。

但是右键单击模块/聚合/父模块和 Maven -> 重新导入可能就足够了。

于 2015-04-06T08:58:52.170 回答
2

我解决了以下方法

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

于 2014-12-12T06:29:59.920 回答
1

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

于 2013-08-24T00:49:56.260 回答
1

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

sourceCompatibility = "xx"
targetCompatibility = "xx"

对于所有子项目,在您的根 build.gradle 文件中,您可以输入:

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

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

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

于 2016-04-12T01:14:53.793 回答
1

我找到了另一种遇到此错误的方法。如果您一直在重新组织您的目录结构,并且您的一个 pom 指向不再配置 javac 的旧父级(因为该配置已移至中间级别),您可以获得此信息。如果发生这种情况,顶层默认为 1.5,行为不端的低层 pom 会继承它。

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

于 2016-06-24T17:59:02.103 回答
1

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

Maven 工具窗口中,单击刷新按钮刷新。按下此按钮后,IntelliJ IDEA 会在 Maven 工具窗口中解析项目结构。

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

于 2017-07-27T09:20:57.917 回答
1

如果以前的所有解决方案都没有为您工作(这是我的情况),您可以删除 intellij 配置文件:

  • project_directory/.idea/compiler.xml
  • project_directory/.idea/encodings.xml
  • 项目目录/.idea/misc.xml
  • 项目目录/.idea/modules.xml
  • 项目目录/.idea/vcs.xml
  • 项目目录/.idea/workspace.xml
  • 等等

Intellij 稍后会重新生成新的。 但是,请注意,这也会删除在 projet 上进行的所有 intellij 配置(即:调试模式的配置,...)

于 2018-04-23T12:13:20.367 回答
1

您需要在构建配置中更改 Java 编译器版本。

在此处输入图像描述

于 2018-10-08T10:15:44.503 回答
0

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

选择您的项目并导航到 Dependencies 选项卡。从下拉列表中选择正确的依赖关系或创建新的。

于 2016-11-09T22:39:55.753 回答