jenkins起動時にエラー「java.lang.UnsupportedClassVersionError: 58.0」が発生した場合の対処法

jenkins起動時にエラー「java.lang.UnsupportedClassVersionError: 58.0」が発生した場合の対処法

jenkins起動時にエラー「java.lang.UnsupportedClassVersionError: 58.0」が発生した場合の対処法を記述してます。

環境

  • OS CentOS Linux release 8.0.1905 (Core)
  • Jenkins 2.222.3

エラー内容

jenkins起動時に発生。

systemctl status jenkins
● jenkins.service - LSB: Jenkins Automation Server
   Loaded: loaded (/etc/rc.d/init.d/jenkins; generated)
   Active: active (exited) since Fri 2020-05-15 03:30:35 EDT; 5s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 21611 ExecStop=/etc/rc.d/init.d/jenkins stop (code=exited, status=0/SUCCESS)
  Process: 21624 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=0/SUCCESS)

localhost.localdomain jenkins[21624]: java.lang.UnsupportedClassVersionError: 58.0
localhost.localdomain jenkins[21624]:         at Main.verifyJavaVersion(Main.java:174)
localhost.localdomain jenkins[21624]:         at Main.main(Main.java:142)
localhost.localdomain jenkins[21624]: Jenkins requires Java versions [8, 11] but you are running with Java 14 from /usr/lib/jvm/adoptopenjdk-14-hotspot
localhost.localdomain jenkins[21624]: java.lang.UnsupportedClassVersionError: 58.0
localhost.localdomain jenkins[21624]:         at Main.verifyJavaVersion(Main.java:174)
localhost.localdomain jenkins[21624]:         at Main.main(Main.java:142)
localhost.localdomain runuser[21632]: pam_unix(runuser:session): session closed for user jenkins
localhost.localdomain jenkins[21624]: [  OK  ]
localhost.localdomain systemd[1]: Started LSB: Jenkins Automation Server.

原因

エラーメッセージに書いてある通り、javaのバージョンが14だったため発生。

Jenkins requires Java versions [8, 11] but you are running with Java 14

対処法

java11をインストールして、javaのバージョンを変更する。ここでは11に変更してます。
ここでは 商用利用が可能な コミュニティにより提供されている「OpenJDK」のバイナリ「adoptopenjdk」をインストールします。

詳細はこちらに記述してます。まずjava11をインストールするため、リポジトリを追加します。

## リポジトリを追加
sudo vi /etc/yum.repos.d/adoptopenjdk.repo

<編集>
[AdoptOpenJDK]
name=AdoptOpenJDK
baseurl=http://adoptopenjdk.jfrog.io/adoptopenjdk/rpm/centos/8/x86_64
enabled=1
gpgcheck=1
gpgkey=https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public

インストールします。

## インストールリスト確認
dnf list adoptopenjdk*

## 14をインストール
sudo dnf -y install adoptopenjdk-11-hotspot.x86_64

バージョンを変更します。

sudo update-alternatives --config java

3 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
 + 1           /usr/lib/jvm/adoptopenjdk-14-hotspot/bin/java
   2           /usr/lib/jvm/adoptopenjdk-11-hotspot/bin/java
*  3           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el8_1.x86_64/jre/bin/java)

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2