前置き
Project configurator 'org.eclipse.buildship.configurators.base' failed to configure project
Unbound classpath container: 'JRE System Library [JavaSE-21]' in project
The project cannot be built until build path errors are resolved
このようなエラーが起きていた。
原因1: JREのバージョンが一致していない
このエラーのよくある原因は、プロジェクトで指定しているJavaバージョン(JRE)と、実際に使用されているJREのバージョンが一致していないことです。
例えば、build.gradleファイル内でJava 21を指定しているのに、EclipseやシステムがJava 17しか認識していないと、このような「Unbound classpath container」エラーが発生します。
どうしてこうなるのか?
Gradleのツールチェーン設定でJava 21を指定していても、Eclipseやローカル環境がJava 21を正しく認識していないと、プロジェクトがビルドできません。
EclipseのBuild Pathで指定されたJREがインストールされていない場合、EclipseはJavaプログラムをどのJREで実行するのかがわからなくなります。
解決方法:
EclipseでのJRE設定を確認:
- Window > Preferences > Java > Installed JREs を開き、使用するJRE(この場合はJava 21)が正しくインストールされているか確認。
- JREがリストに表示されていない場合は、Add をクリックし、Java 21を追加します。
プロジェクトのビルドパスを修正:
- プロジェクトを右クリックし、Build Path > Configure Build Path で JRE System Library を削除し、インストールされたJRE(Java 21など)を追加します。
- Gradleツールチェーンを確認: build.gradle にJava 21が指定されている場合、以下のような設定が含まれているか確認します。
// build.gradle
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
この設定で、GradleがJava 21を使うように強制します。EclipseとGradleのJavaバージョンを一致させることが重要です。
原因2: EclipseのGradle設定が正しくない
EclipseはBuildshipというGradleのプラグインを使ってプロジェクトを構成しますが、この設定が正しくない場合にも「Project configurator failed」エラーが発生します。
どうしてこうなるのか?
Gradleプロジェクトの構成時に、指定されたJava環境が見つからない、または依存関係が解決されないと、Eclipseはプロジェクトを構築できません。
特に、Gradle wrapperが古いバージョンを使っている場合、Javaのバージョンや依存関係が正しく解決されないことがあります。
解決方法:
Gradleのバージョンを確認: gradle-wrapper.propertiesファイル内で、適切なGradleバージョンが指定されているか確認します。最新バージョンを使うことをお勧めします。
// gradle.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
プロジェクトをリフレッシュ:
- Gradle > Refresh Gradle Project を実行して、依存関係と設定を最新の状態に同期します。
Eclipseのキャッシュクリア:
- Project > Clean でプロジェクトをクリーンし、Eclipseのキャッシュをクリアして再ビルドを行います。
原因3: JREやJDKがそもそもインストールされていない
Javaの実行環境(JRE)や開発環境(JDK)が正しくインストールされていない場合も、このようなエラーが発生します。特に新しいJavaバージョンを使う場合、システムやIDEにそのバージョンがインストールされていないことがあります。
解決方法:
- Javaのインストール状況を確認: ターミナルやコマンドプロンプトで以下のコマンドを実行し、インストールされているJavaバージョンを確認します。
// bash
java -version
もし、目的のバージョン(例:Java 21)がインストールされていなければ、Oracle JDKやAdoptOpenJDKからダウンロードしてインストールします。