[已修复] Eclipse - Java 编译器级别与已安装的 Java 项目版本不匹配
最近我在Eclipse中导入了一个 Maven 项目,并将构建路径库更改为适用于 Java 1.7。之后,Eclipse 在项目中显示错误,尽管任何文件中都没有显示错误。
Java 编译器级别与安装的 Java 项目版本不匹配
错误描述是:Java compiler level does not match the version of the installed Java project facet.
我还将项目编译器合规级别更改为 1.7,但错误仍然没有消失。下面的屏幕截图显示了显示此错误的问题视图。
修复 Java 编译器级别与已安装的 Java 项目版本不匹配的问题
经过一番研究并查看项目属性后,我能够修复此问题。我需要做的就是将Java Project Facet版本从 1.5 更改为 1.7。下面的屏幕截图显示了项目属性窗口,您可以在其中设置项目 facets 版本。就我个人而言,我不喜欢在 UI 中更改任何内容,我更倾向于通过终端进行操作。好吧,有一种方法可以通过编辑 facets 的项目设置来做到这一点。您可以在项目根目录下的.settingsorg.eclipse.wst.common.project.facet.core.xml
文件夹内的文件中找到它。该文件的原始内容是:
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="wst.jsdt.web"/>
<installed facet="jst.web" version="2.3"/>
<installed facet="wst.jsdt.web" version="1.0"/>
<installed facet="java" version="1.5"/>
</faceted-project>
我将其修改如下。
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="wst.jsdt.web"/>
<installed facet="jst.web" version="2.3"/>
<installed facet="wst.jsdt.web" version="1.0"/>
<installed facet="java" version="1.7"/>
</faceted-project>
刷新项目后,错误消失。
Java 编译器级别与已安装的 Java 项目版本不匹配的额外提示
如果您想从终端更改编译器兼容级别,则需要在org.eclipse.jdt.core.prefs
文件中编辑以下属性。
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.source=1.7
.classpath
我们也可以在项目文件中更改库,但这并不容易,这取决于为库配置的名称,例如在我的项目类路径文件中,JRE 的条目如下所示。
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Home">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
我希望它能够帮助那些遇到项目方面问题的人。