“失败的项目问题(Java版本不匹配)”错误消息


71

Eclipse的“问题”选项卡显示此错误:

说明:Java编译器级别与已安装的Java项目构面的版本不匹配。
资源:分组
路径:[空白]
位置:未知
类型:多面项目问题(Java版本不匹配)

我的pom.xml设置如下:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.6</source>
            <target>1.6</target>
        </configuration>
    </plugin>
</plugins>

其他设置可能不匹配?

Answers:


144

您检查过Project Properties -> Project Facets面板了吗?(来自该帖子

WTP项目由多个功能单元(称为构面)组成。

Java facet版本必须始终与Java编译器符合性级别匹配。
更改Java级别的最佳方法是使用“项目构面”属性面板,因为这将同时更新两个位置。

污水处理厂

Project->Preferences->Project Facets”将其配置存储org.eclipse.wst.common.project.facet.core.xml在“ .settings”目录下的该文件“ ”中。

内容可能看起来像这样

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <runtime name="WebSphere Application Server v6.1"/>
  <fixed facet="jst.java"/>
  <fixed facet="jst.web"/>
  <installed facet="jst.java" version="5.0"/>
  <installed facet="jst.web" version="2.4"/>
  <installed facet="jsf.ibm" version="7.0"/>
  <installed facet="jsf.base" version="7.0"/>
  <installed facet="web.jstl" version="1.1"/>
</faceted-project>

还要检查您的Java合规性级别

Java合规性级别


非常感谢!它有所帮助
priyanka '10

42

您可以通过以下两种方法解决此问题:

1-手动确保两个版本匹配。
2-使用IDE的帮助如下:
-右键单击“问题”视图中的错误
-从弹出菜单中选择“快速修复”菜单项
-在提供的对话框中选择正确的编译器级别,然后单击“完'。

取自Eclipse:Java编译器级别和项目构面不匹配

还提供了可以访问Java编译器和构面版本的位置。


21

M2Eclipse插件应从POM配置自动导出项目构面。如果您对POM进行了一些更改,并且需要Eclipse加以考虑,请右键单击您的项目,然后转到Maven>更新项目配置。您不应该手动设置项目构面。


@VonC当然,关于手动配置此方法的方法是正确的,但是当使用maven和m2eclipse插件时,该插件应该-确实确实为您配置了它。所有必需的元数据都在POM中:JDK级别版本,Servlet API等。开发人员不必在导入或进行任何其他POM更新后手动进行设置。这也适用于maven-eclipse-plugin(基于POM元数据生成构面)。
Pascal Thivent 2010年

编写时可能是正确的,但是截至2011-05年的最新版本的m2e并未像旧版本那样手动添加依赖项,因此您必须手动将项目转换为多面项目,然后手动编辑配置文件将正确的罐子复制到您的lib目录。真痛苦 请参阅sites.google.com/site/michaelvorburger/m2e-and-wtp
Garret Wilson

0

在Spring STS中,右键单击项目并选择“打开项目”,此设置可在后台执行必要的操作并将项目带回到工作空间。

感谢和问候Vengat Maran


0

我在Java 1.6上运行应用程序时遇到了这个问题,同时我拥有适用于不同应用程序的Java 6,7,8的所有三个版本。我访问了Navigator视图并手动从facet.core.xml中删除了不需要的构面。哇!

<?xml version="1.0" encoding="UTF-8"?>

<fixed facet="jst.java"/>

<fixed facet="jst.web"/>

<installed facet="jst.web" version="2.4"/>

<installed facet="jst.java" version="6.0"/>

<installed facet="jst.utility" version="1.0"/>


已经有一个可以接受的答案,它不仅得到了很高的评价,而且还解决了OP的问题。
L. Guthardt '18
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.