ChatGPT解决这个技术问题 Extra ChatGPT

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

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

添加后,Eclipse Problems 视图中出现了构建错误:

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

请告诉我如何解决此错误(我希望我的 JRE 版本仅为 1.6)。

Bigleftie 的回答对非 Maven 项目很有帮助。
eclipse 用户可以阅读此journaldev.com/3334/…

N
Nicolas Raoul

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

左边有一个 Project Facets 项,选中它,在列表中查找 Java facet,选择你要用于项目的版本并应用。

https://i.stack.imgur.com/YXWSW.png


Project Facet->Java 应该与 pom.xml 中用于 maven-compiler-plugin 工件源和目标的任何内容相匹配。
这个问题的根本原因应该是@VineetReynolds提供的答案
我有这个问题,听起来像是一个maven问题,但我不使用maven,我没有POM文件,我什至不确定我是否有maven插件。然而我得到了同样的错误;我的 Eclipse 设置为使用 java 1.7,但我的项目的方面页面只会让我选择 1.6。我究竟做错了什么?
四件事必须匹配 1) Project->Java Build Path->Libraries->JRE version 2) Project->Java Compiler-> Compiler Compliance Level 3) Project->Project Facets->Java->Version 4)(如果使用 Maven ) pom.xml - maven-compiler-plugin 工件源和目标
我第二个@TK Gospodinov 回答。我的 pom 是最新的 Java 版本,但项目方面是罪魁祸首。
V
Vineet Reynolds

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

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

或者,您可以指定值为 1.6 的 maven.compiler.sourcemaven.compiler.target 属性,它们恰好是等效的:

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

你能做到吗: - 右键单击您的项目 - 单击属性 - 单击左侧菜单上的“Project Facets”选项 - 在右侧的“Java”部分下,将其更改为“1.6”、“1.7”或您的版本... - 单击确定
@ThiagoPereira 当您在不同的工作区重新导入时,您会丢失这些更改。了解 m2e 的工作原理。
eclipse 用户可以阅读journaldev.com/3334/…
N
Nestor Urquiza

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


c
cmgharris

我发现上面@bigleftie 的评论很有帮助:“四件事必须匹配

Project->Java Build Path->Libraries->JRE version Project->Java Compiler->Compiler Compliance Level Project->Project Facets->Java->Version (if using Maven) pom.xml - maven-compiler-plugin artefact source和目标”。

就我而言,在项目属性 Java 编译器中,JDK 合规性设置为使用工作区设置,这与项目的 Java 版本不同。我单击“配置工作区设置”,并将工作区编译器合规级别更改为我想要的,问题就解决了。


d
developerick

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

以供参考 -

https://i.stack.imgur.com/OrG6h.png


R
Rugmangathan

我将 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 中删除了项目并重新导入解决了这个问题。
R
RishiKesh Pathak

我通过 Myproject--->java Resource---->libraries-->JRE System Libraries[java-1.6] 解决了它点击这个去它的“属性”选择“Classpath Container”将执行环境更改为 java-1.8 (jdk1.8.0-35) (即最新)

https://i.stack.imgur.com/fd555.png


u
user3925215

Project Facet->Java 应该与 pom.xml 中针对 maven-compiler-plugin 工件源和目标的任何内容相匹配。这是完美的。但是如果您在此处没有它,那么您也可以通过匹配 Java 编译器版本来修复它在设置中的 Porject-Facets 中:Eclispe->Preferences->Java->Compiler


A
Anant Laxmikant Bobde

您可以从 Project --> Properties --> Project Facet --> Java --> {required JDK version} 更改项目方面


R
Raphael

右键单击项目并选择属性单击左侧的java编译器并更改为您所需的版本希望这会有所帮助


B
Balwinder Singh

在 Eclipse 中,右键单击您的项目,转到 Maven> Update projetc。等待,错误将消失。这已经正确配置了该项目的 Java 版本。

https://i.stack.imgur.com/tGhYi.png


A
ADL

如果使用日食,

在.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>

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