Java 编译器级别与安装的 Java 项目方面的版本不匹配
Posted
技术标签:
【中文标题】Java 编译器级别与安装的 Java 项目方面的版本不匹配【英文标题】:Java compiler level does not match the version of the installed Java project facet 【发布时间】:2011-12-04 15:23:54 【问题描述】:我在 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/… "Faceted Project Problem (Java Version Mismatch)" error message的可能重复 【参考方案1】:如果您的项目不是 Maven 项目,请右键单击您的项目并选择“属性”以打开“项目属性”对话框。
左侧有一个Project Facets项,选中它,在列表中查找Java facet,选择你要用于项目的版本并应用。
【讨论】:
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- >版本 4)(如果使用 Maven)pom.xml - maven-compiler-plugin 工件源和目标 我第二个@TK Gospodinov 的回答。我的 pom 是最新的 Java 版本,但项目方面是罪魁祸首。【参考方案2】:假设您在 Eclipse 中使用 m2e 插件,您需要为 maven-compiler-plugin
指定 source
和 target
版本为 1.6。 m2e 使用这些值来确定项目的 Java 编译器级别。 POM 的 sn-p 如下所示:
<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.source
和 maven.compiler.target
属性,这恰好是等效的:
<properties>
<maven.compiler.target>1.6</maven.compiler.target>
<maven.compiler.source>1.6</maven.compiler.source>
</properties>
【讨论】:
你能做到吗: - 右键单击您的项目 - 单击属性 - 单击左侧菜单上的“项目构面”选项 - 在构面部分右侧的“Java”下,将其更改为“ 1.6"、"1.7" 或您的版本... - 点击确定 @ThiagoPereira 当您在不同的工作区重新导入时,您会丢失这些更改。了解 m2e 的工作原理。 eclipse 用户可以阅读journaldev.com/3334/…【参考方案3】:即使对于 maven 项目,TK Gospodinov 的回答也是正确的。当心:我确实使用 Maven。 pom是正确的,仍然有这个问题。我去了“Project Facets”,实际上删除了指向 1.6 的 Java 选择,但我的项目使用的是 1.7。在“运行时”选项卡的右侧,我必须检查 jdk1.7 选项。即使在我点击“应用”之后,左侧也没有出现任何内容。这个问题消失了,这就是为什么我仍然认为这个答案对于特定的“项目方面”相关问题很重要。如果您返回“Project Facets”,点击 OK 后,您会注意到 Java 显示为 1.7 版,因此您现在可以选择它以确保该项目被“标记”为 Java 项目。我还需要右键单击项目并选择 Maven|更新项目。
【讨论】:
【参考方案4】:我通过在项目属性的Project Facet属性中设置java版本解决了这个问题,右键项目根文件夹->属性,搜索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 中删除了项目并重新导入解决了这个问题。【参考方案6】:我通过Myproject--->java Resource---->libraries-->JRE System解决了它Libraries[java-1.6]点击这个去它的“property”选择“Classpath Container”把Execution Environment改成java-1.8(jdk1.8.0-35)(即最新)
【讨论】:
【参考方案7】:我发现上面@bigleftie 的评论很有帮助: "四件事必须匹配
-
项目->Java 构建路径->库->JRE 版本
项目->Java 编译器-> 编译器合规级别
项目->项目方面->Java->版本
(如果使用 Maven)pom.xml - maven-compiler-plugin 工件源和目标”。
在我的情况下,在项目属性 Java 编译器中,JDK 合规性设置为使用工作区设置,这与项目的 Java 版本不同。我点击了“配置工作区设置”,并将工作区编译器合规级别更改为我想要的,问题就解决了。
【讨论】:
【参考方案8】:Project Facet->Java 应该匹配 pom.xml 中用于 maven-compiler-plugin 工件源和目标的任何内容。这是完美的。但如果你没有它,那么你也可以通过匹配来修复它来自设置的 Porject-Facets 中的 Java 编译器版本:Eclispe->Preferences->Java->Compiler
【讨论】:
【参考方案9】:您可以从 项目 --> 属性 --> 项目构面 --> Java --> 必需的 JDK 版本
【讨论】:
【参考方案10】:右键单击项目并选择属性 单击左侧的java编译器并更改为您所需的版本 希望这会有所帮助
【讨论】:
【参考方案11】:在 Eclipse 中,右键单击您的项目,转到 Maven> 更新 projetc。等待,错误将消失。这已经正确配置了该项目的 Java 版本。
【讨论】:
【参考方案12】:如果使用eclipse,
在.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>
将版本更改为正确的版本。
【讨论】:
以上是关于Java 编译器级别与安装的 Java 项目方面的版本不匹配的主要内容,如果未能解决你的问题,请参考以下文章