【エラー解決方法】Maven installでクラス・ファイルのバージョン55.0は不正です。52.0である必要があります が発生したときの対処法
目次
こんにちは。飯塚です。
研修中の新入社員からJavaの環境構築エラーについて質問をもらいました。たまに見かけるエラーで毎回思い出すのに少し時間がかかるので記事にまとめました。
前提1:エラー再現環境
| 項目 | 詳細 |
|---|---|
| OS | Windows 11 |
| 言語 | Java 11 |
| IDE | Eclipse 2023-12 (4.30.0) |
| ビルドツール | Maven3 |
前提2:プロジェクトの構成
親子関係にあるMavenプロジェクトがあります。子プロジェクトから親プロジェクトのファイルを呼び出す、という構成です。
parent-project
└ Sample.java
child-project
└ CallSample.java (Sample.javaを呼び出す)
Maven intall 時のエラーログ:「クラス・ファイルのバージョン55.0は不正です。52.0である必要があります」
子プロジェクトのMaven install 時に発生したエラーログは下記です。
[ERROR]Failed to execute goal [32m org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile [m [1m(default-compile) [m on project [36m xxx [m: [1;31m Compilationfailure [m
[ERROR] [1;31m /C:/Users/xxx/src/main/java/CallSample.java:[5,17]Sampleにアクセスできません [m
[ERROR] [1;31m クラス・ファイルC:\Users\xxx\.m2\repository\xxx\1.0.0-SNAPSHOT\xxx-1.0.0-SNAPSHOT.jar(Sample.class)は不正です [m
[ERROR] [1;31m クラス・ファイルのバージョン55.0は不正です。52.0である必要があります [m
[ERROR] [1;31m 削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。
ざっくり言えば、バージョンが一致していないため、子プロジェクトから親プロジェクトのファイルを呼び出すことができない、という意味です。「55.0」は「Java11」に、「52.0」は「Java8」に対応するクラスバージョンです。
解決方法(一時対応):Maven install 時のランタイムJREのバージョンを修正する
今回のエラーは子プロジェクトで Maven install を実施するときに、JREのバージョンが11ではなく8で実行されていることが原因です。正しいバージョンを設定して、Maven install し直すと解消します。
子プロジェクトの pom.xml を選択して右クリックを押します。

「実行」>「実行の構成」を開きます。

Mavenビルドの構成が開くので、「JRE」タブへ移動します。もし Mavenビルドの構成が設定されていなかったら、画像のように新規作成します。

現時点のJavaバージョンを確認します。Java8 が選択されているので古いですね。

正しいJavaのバージョンを選択して、「適用」、「実行」します。

もう一度、子プロジェクトの pom.xml を選択して右クリックを押します。

修正した実行の構成で、ビルドを行えば解消します。

解決方法(恒久対応):プロジェクトのJREを正しいバージョンに修正する
そもそもプロジェクトのJREのバージョンが誤っていたため、Maven install時のランタイムJREのバージョンが正しくなかったようです。下記手順で修正します。
対象のプロジェクトを選択して、「プロジェクト」タブ > 「プロパティー」を開きます。

「Javaのビルド・パス」>「ライブラリー」タブから現状のJREのバージョンを確認します。

バージョンが古いため「除去」します。

正しいバージョンを入れるため「ライブラリーの追加」を押します。

「JREシステムライブラリー」を選択して「次へ」を押します。

正しいバージョンを選択して、「完了」を押します。

追加されたことを確認して、「適用して閉じる」を押します。追加するだけで適用しないと反映されないのでご注意ください。

まとめ
いかがでしょうか。
IDEでMavenのエラーを解消するためには、IDEの操作知識が必要になるのが、環境構築を難しく感じさせる理由の1つですね。今後も環境構築エラー関連のブログを書くつもりですので、お困りのときはぜひご参照ください。
《関連記事》
アシスタントリーダー Iizuka 技術の入門・まとめ系を中心に書いてます。あとで読み返したいと感じていただける記事を目指しています。


