Java编译器级别与已安装的Java项目构面的版本不匹配


202

我已经在Eclipse Helios版本下创建了一个New Dynamic Project,其中我的JRE版本设置为1.6。通过单击“ 配置” →“ 转换为Maven项目”,我已将Maven功能添加到Web应用程序。

添加此内容后,“ Eclipse问题”视图中将出现一个构建错误:

Java compiler level does not match the version of the installed Java project facet.
Unknown Faceted Project Problem (Java Version Mismatch)

请告诉我如何解决此错误(我只想将我的JRE版本设为1.6)。


对于非Maven项目,Bigleftie的回答对我很有帮助。
杰克·梅森


Answers:


166

假设您正在Eclipse中使用m2e插件,则需要将sourcetarget版本指定为和,其版本为1.6 maven-compiler-plugin。m2e使用这些值来确定项目的Java编译器级别。POM的片段如下所示:

<build>
  <plugins>
    <plugin>
      <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
    </plugin>
  </plugins>
</build>

另外,您可以指定maven.compiler.sourcemaven.compiler.target属性的值为1.6,恰好等效:

<properties>
    <maven.compiler.target>1.6</maven.compiler.target>
    <maven.compiler.source>1.6</maven.compiler.source>
</properties>

60
您可以这样做:-右键单击您的项目-单击属性-单击左侧菜单上的“项目构面”选项-在构面下的右侧“ Java”部分下,将其更改为“ 1.6”,“ 1.7”或您的版本...-单击确定
Thiago Pereira

3
@ThiagoPereira在其他工作空间中重新导入时,您会丢失这些更改。了解m2e的工作原理。
Vineet Reynolds


400

如果您的项目不是Maven项目,请右键单击您的项目,然后选择“属性”以打开“项目属性”对话框。

左侧有一个Project Facets项,将其选中,在列表中查找Java Facet,选择要用于该项目并应用的版本。

项目情况-Java版本


19
Project Facet-> Java应该与pom.xml中与maven-compiler-plugin工件来源和目标匹配的内容匹配。
阿里·罗森斯坦

4
此问题的根本原因应该是@VineetReynolds提供的答案
Jerry Tian)

4
我有这个问题,听起来像是一个Maven问题,但是我不使用Maven,我没有POM文件,甚至不确定我是否具有Maven插件。但是我也遇到同样的错误。我的eclipse设置为使用Java 1.7,但是我项目的facet页面仅允许我选择1.6。我究竟做错了什么?
rjcarr

7
必须满足以下四点:1)项目-> Java构建路径->库-> JRE版本2)项目-> Java编译器->编译器符合性级别3)项目->项目构面-> Java->版本4)(如果使用Maven )pom.xml-Maven-compiler-plugin工件来源和目标
bigleftie 2015年

1
我第二个@TK Gospodinov回答。我的pom是Java版本的最新版本,但是项目方面是罪魁祸首。
索曼·杜贝

17

TK Gospodinov的答案即使对于Maven项目也是正确的。当心:我确实使用Maven。pom是正确的,但仍然出现此问题。我去了“ Project Facets”,实际上删除了指向1.6的Java选择,但是我的项目正在使用1.7。在“运行时”选项卡的右侧,我必须检查jdk1.7选项。即使在我单击“应用”之后,什么也没出现在左侧。问题消失了,这就是为什么我仍然认为这个答案对于与“ Project Facets”相关的特定问题很重要。在单击“确定”后,如果您返回“ Project Facets”,则会注意到Java显示为1.7版,因此您现在可以选择它以确保该项目被“标记”为Java项目。我还需要右键单击该项目,然后选择Maven | Update Project。


6

我通过在项目属性的Project Facet属性中设置Java版本来解决此问题,右键单击项目根文件夹-> Properties,搜索Project Facets,然后选择兼容的Java版本。

以供参考 -

在此处输入图片说明


5

我将内部配置更改workspace/project/.setting/org.eclipse.wst.common.project.facet.core为:

installed facet="jst.web" version="2.5"
installed facet="jst.java" version="1.7"

更改配置之前,请从IDE中删除项目。这对我有用。


刚刚从Eclipse中删除了该项目,然后重新导入即可解决此问题。
穆罕默德·费萨尔

5

我通过Myproject解决了---> java资源 ----> -> J RE系统库[java-1.6]单击此,转到其“ 属性 ”,选择“类路径容器”,执行环境更改为java- 1.8(jdk1.8.0-35)(最新的

将JDK更改为最新


4

Project Facet-> Java应该与maven-compiler-plugin工件源和目标的pom.xml中的内容相匹配。在以下设置的Porject-Facets中:Eclispe->首选项-> Java-> Compiler



3

右键单击该项目,然后选择属性。单击左侧的Java编译器,然后更改为所需的版本,希望对您有所帮助。



1

如果使用日食

Under.settings单击org.eclipse.wst.common.project.facet.core.xml

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <installed facet="java" version="1.7"/>
</faceted-project>

将版本更改为正确的版本。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.