如何解决Eclipse中Java编译级别与项目特征版本不兼容
最近我在Eclipse中导入了一个Maven项目,并将构建路径库更改为适用于Java 1.7。之后,Eclipse在项目中显示了错误,尽管任何文件都没有显示错误。
Java编译器版本与安装的Java项目构面版本不匹配
错误描述是Java编译器级别与已安装的Java项目构面版本不匹配。我还将项目编译器兼容级别更改为1.7,但错误仍未消失。下面的屏幕截图显示了问题视图中显示的错误。
Java编译器级别与安装的Java项目构面版本不匹配的修复方法
经过一些研究并查看项目属性,我成功解决了这个问题。我只需要将Java项目构面版本从1.5改为1.7即可。下方截图展示了项目属性窗口,您可在此设置项目构面版本。
个人而言,我不喜欢在用户界面上更改任何内容,我更倾向于通过终端进行操作。好消息是,您可以通过编辑项目根目录下的.settings文件夹中的org.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文件中修改库,但这并不容易且取决于为库配置的名称,例如在我的项目classpath文件中,Java运行时环境(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>
希望这能帮助到面临项目构面问题的人。