IDEA:javac:源版本1.7需要目标版本1.7

时间:2012-10-15 16:55:45

标签: java intellij-idea

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

enter image description here

我该如何纠正?

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

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

18 个答案:

答案 0 :(得分:626)

您很可能在这里从Maven导入了错误的编译器选项:

compiler options

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

配置语言级别的其他位置:

  • 项目结构|的项目

project

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

sources

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

可以使用pom.xml内的maven-compiler-plugin配置更改此内容:

<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将尊重此设置:

reimport

答案 1 :(得分:356)

IntelliJ 15,2016&amp; 2017

类似于下面针对IntelliJ 13&amp; 14,但在“设置/首选项”面板中有一个额外的级别:设置&gt; 构建,执行,部署&gt; 编译器&gt; Java编译器

enter image description here

IntelliJ 13&amp; 14

在IntelliJ 13和14中,检查设置&gt;编译器&gt; Java Compiler 用户界面,确保您不会在模块中定位不同的字节码版本。

enter image description here

答案 2 :(得分:61)

IntelliJ IDEA 14.1 中,&#34;目标字节码版本&#34;在另一个地方。

以下更改对我有用:

档案&gt;设置...&gt;构建,执行,部署&gt;编译器&gt; Java编译器:将目标字节码版本从1.5更改为1.8

enter image description here

enter image description here

答案 3 :(得分:41)

如果你使用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>

答案 4 :(得分:22)

我遇到了这个,修复是去项目设置&gt;模块&gt;点击特定模块&gt;依赖选项卡。我注意到模块SDK仍然设置为1.6,我将其更改为1.7并且它有效。

答案 5 :(得分:13)

我在设置&gt;中找到了必需的选项('目标字节码版本')编译器&gt;在我的例子中的java编译器(intelij idea 12.1.3)

答案 6 :(得分:9)

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

  

/project/.idea/compiler.xml

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

答案 7 :(得分:5)

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

设置&gt;编译器&gt; Java编译器&gt;项目字节码版本

比IntelliJ使用JDK默认版本。

答案 8 :(得分:4)

我从IntelliJ IDEA 14到v14.1进行了一次小幅升级后才发现这个问题。 对于我来说,更改了top / parent pom的编辑帮助,然后单击重新导入Maven(如果它不是自动的)。

但它可能足以右键单击模块/聚合/父模块和Maven - &gt;重新导入。

答案 9 :(得分:4)

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

IntelliJ 12 129.961

答案 10 :(得分:2)

我解决了波纹管方法

档案&gt;&gt;项目结构&gt;&gt;项目&gt;&gt;项目语言水平   - &GT;设置正确的版本(例如:1.5)

答案 11 :(得分:1)

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

答案 12 :(得分:1)

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

import os
import re

path = '/home/ajay/Desktop/practice/ajay.txt'
os.system('ifconfig>>path')
fd = open(path,'r+')
interfaces = []
tx_packets = []

for line in fd:

    if(re.search(r'(\w+)\s+\Link',line)):
    inter = re.match(r'(\w+)\s+\Link',line)
    interface = inter.group(1)
    interfaces.append(interface)

for lines in fd:

    if(re.search(r'\s+TX packets:(\d+)',lines)):
        tx_packs = re.match(r'\s+TX packets:(\d+)',lines)
        tx_pack = tx_packs.group(1)
        tx_packets.append(tx_pack)


print interfaces
print  tx_packets

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

sourceCompatibility = "xx"
targetCompatibility = "xx"

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

基于Gradle documentation,如果未设置,则使用当前的JVM配置。

答案 13 :(得分:1)

我找到了另一种遇到此错误的方法。如果你一直在重新组织你的目录结构,你可以得到这个,并且你的一个poms指向不再配置javac的旧父级(因为该配置被移动到中间级别)。如果发生这种情况,最高级别默认为1.5,行为不当的低级别pom继承它。

当你看到这个错误时,检查的另一件事是你的pom结构正确匹配你的目录结构。

答案 14 :(得分:1)

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

Maven tool window中,点击刷新按钮refresh。按下此按钮,IntelliJ IDEA将在Maven工具窗口中解析项目结构。

请注意,如果您正在使用EAP版本,这可能会有所帮助,因为Maven同步功能有时可能会被破坏。

答案 15 :(得分:0)

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

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

答案 16 :(得分:0)

如果之前的所有解决方案都不适合您(这是我的情况),您可以删除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稍后会重新生成新的。 但是,小心,这也将删除在projet上进行的所有intellij配置(即:调试模式的配置,......)

答案 17 :(得分:0)

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

enter image description here