エラーの概要
CentOSのサーバでjarを実行しようとしたところ、以下のエラーが発生しました。
Exception in thread "main" java.lang.UnsupportedClassVersionError: {クラス名} has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
原因
原因は、Javaのバージョンが古いことでした。
以下のコマンドでバージョンを確認してみたところ、1.8になっていました。
$ java -version openjdk version "1.8.0_322" OpenJDK Runtime Environment (build 1.8.0_322-b06) OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)
解決方法
OpenJDK17をインストールします。
方法はいくつかありますが、私は以下のコマンドを実行して導入しました。
$ yum install -y https://cdn.azul.com/zulu/bin/zulu-repo-1.0.0-1.noarch.rpm $ yum install zulu17-jdk
Javaのバージョンを確認すると、17になっており、jarファイルも無事に実行することができました。
$ java -version openjdk version "17.0.2" 2022-01-18 LTS OpenJDK Runtime Environment Zulu17.32+13-CA (build 17.0.2+8-LTS) OpenJDK 64-Bit Server VM Zulu17.32+13-CA (build 17.0.2+8-LTS, mixed mode, sharing)