Eclipse – Java编译器级别与已安装的Java项目构面的版本不匹配
时间:2020-02-23 14:41:20 来源:igfitidea点击:
最近,我在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。
下面的屏幕快照显示了"项目属性"窗口,您可以其中设置项目构面版本。
我个人不喜欢在UI中进行任何更改,而是更倾向于通过终端来执行操作。
嗯,有一种方法可以通过编辑构面的项目设置来实现。
您可以在项目根目录.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文件中更改Library,但这并不容易,这取决于为Library配置的名称,例如在我的项目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>