【修正】 Eclipse – Javaのコンパイラーレベルが、インストールされているJavaプロジェクトファセットのバージョンと一致していません。

最近、私はEclipseにMavenプロジェクトをインポートし、ビルドパスのライブラリをJava 1.7で動作するように変更しました。その後、Eclipseはプロジェクト内でエラーを表示しましたが、どのファイルにもエラーは表示されませんでした。

インストールされたJavaプロジェクトの状態とJavaコンパイラのレベルが一致していません。

エラーの説明は、インストールされたJavaプロジェクトの目盛りのバージョンとJavaコンパイラのレベルが一致しないというものでした。また、プロジェクトのコンパイラ互換レベルも1.7に変更しましたが、エラーは解消されていませんでした。以下のスクリーンショットは、このエラーが表示された問題ビューを示しています。

インストールされているJavaプロジェクトのバージョンに、Javaコンパイラのレベルが合っていない場合の修正。

調査をした後、プロジェクトのプロパティを確認することで、この問題を修正することができました。やる必要があったのは、Javaプロジェクトのファセットバージョンを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>

以下に修正しました。 (I modified it to below.)

<?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ファイルでは、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>

この問題に直面している人の助けになることを願っています。プロジェクトのファセットに関してです。

コメントを残す 0

Your email address will not be published. Required fields are marked *