そういうのがいいブログ

SIerで働く30代サラリーマンSEがインフラエンジニアに憧れてLinux・クラウド・AWSの勉強をするブログ

Jenkinsが起動しないJava8からJava11に更新「invalid Java version」

※[PR]当ブログの記事の中にはプロモーションが含まれています。

・dnf update後、Jenkinsが起動しない。
・「jenkins: invalid Java version」エラーが出てしまう。
・対処方法の具体的な手順を教えてほしい。

こういった疑問に答えます。

本記事の内容

  1. Jenkinsが起動しないのでJava8からJava11に更新して「invalid Java version」エラーを解消する手順

サトナカ (@souiunogaii)

この記事を書いている私は、某SIerに勤務しながら、
WEB系エンジニア・インフラエンジニアに憧れて、プログラミングおよびインフラ技術の勉強をしています。

こういった私が、解説していきます。

私が実機で試したコマンドや画像を載せて書いています。
記事の信頼性担保に繋がると思います。

Jenkinsが起動しないJava8からJava11に更新「invalid Java version」

発生事象

OSのdnf update後、サーバーの再起動をした後から、Jenkinsが起動しなくなりました。

ブラウザでJenkinsの画面を表示しようとすると、以下の画面になってしまいました。

確認したこと

systemctl start jenkins
[root@SV-SATURN ~]# systemctl start jenkins
Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
systemctl status jenkins
[root@SV-SATURN ~]# systemctl status jenkins
● jenkins.service - Jenkins Continuous Integration Server
   Loaded: loaded (/usr/lib/systemd/system/jenkins.service; disabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/jenkins.service.d
           mqoverride.conf
   Active: failed (Result: start-limit) since 水 2022-11-09 00:00:29 JST; 8h ago
  Process: 706 ExecStart=/usr/bin/jenkins (code=exited, status=1/FAILURE)
 Main PID: 706 (code=exited, status=1/FAILURE)

1109 00:00:29 SV-SATURN systemd[1]: jenkins.service: main process exited, code=exited, sta...URE
1109 00:00:29 SV-SATURN systemd[1]: Failed to start Jenkins Continuous Integration Server.
1109 00:00:29 SV-SATURN systemd[1]: Unit jenkins.service entered failed state.
1109 00:00:29 SV-SATURN systemd[1]: jenkins.service failed.
1109 00:00:29 SV-SATURN systemd[1]: jenkins.service holdoff time over, scheduling restart.
1109 00:00:29 SV-SATURN systemd[1]: Stopped Jenkins Continuous Integration Server.
1109 00:00:29 SV-SATURN systemd[1]: start request repeated too quickly for jenkins.service
1109 00:00:29 SV-SATURN systemd[1]: Failed to start Jenkins Continuous Integration Server.
1109 00:00:29 SV-SATURN systemd[1]: Unit jenkins.service entered failed state.
1109 00:00:29 SV-SATURN systemd[1]: jenkins.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
/var/log/messages
Nov  9 08:21:32 SV-SATURN systemd: Starting Jenkins Continuous Integration Server...
Nov  9 08:21:32 SV-SATURN jenkins: jenkins: invalid Java version: openjdk version "1.8.0_352"
Nov  9 08:21:32 SV-SATURN jenkins: OpenJDK Runtime Environment (build 1.8.0_352-b08)
Nov  9 08:21:32 SV-SATURN jenkins: OpenJDK 64-Bit Server VM (build 25.352-b08, mixed mode)
Nov  9 08:21:32 SV-SATURN systemd: jenkins.service: main process exited, code=exited, status=1/FAILURE
Nov  9 08:21:32 SV-SATURN systemd: Failed to start Jenkins Continuous Integration Server.
Nov  9 08:21:32 SV-SATURN systemd: Unit jenkins.service entered failed state.
Nov  9 08:21:32 SV-SATURN systemd: jenkins.service failed.
Nov  9 08:21:32 SV-SATURN systemd: jenkins.service holdoff time over, scheduling restart.
Nov  9 08:21:32 SV-SATURN systemd: Stopped Jenkins Continuous Integration Server.

ログを見ると、jenkins: invalid Java version: openjdk version "1.8.0_352" というエラーが出ていました。

java -version
[root@SV-SATURN ~]# java -version
openjdk version "1.8.0_352"
OpenJDK Runtime Environment (build 1.8.0_352-b08)
OpenJDK 64-Bit Server VM (build 25.352-b08, mixed mode)

原因調査

www.jenkins.io

www.jenkins.io

Beginning with Jenkins 2.357 (released on June 28, 2022) and the forthcoming 2.361.1 LTS release, Jenkins requires Java 11 or newer.
Jenkins 2.357 (2022 年 6 月 28 日にリリース) および今後の 2.361.1 LTS リリース以降、Jenkins には Java 11 以降が必要です。
https://www.jenkins.io/blog/2022/06/28/require-java-11/

Jenkins 2.357、2.361.1LTS 以降からは、Java8 では動作せず、Java11が必要だとアナウンスされていました。

対処方法

Java11のインストール

yum install java-11-openjdk java-11-openjdk-devel
[root@SV-SATURN ~]# yum install java-11-openjdk java-11-openjdk-devel
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
epel/x86_64/metalink                                                         | 9.1 kB  00:00:00
 * base: ftp.iij.ad.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
base                                                                         | 3.6 kB  00:00:00
extras                                                                       | 2.9 kB  00:00:00
jenkins                                                                      | 2.9 kB  00:00:00
updates                                                                      | 2.9 kB  00:00:00
パッケージ 1:java-11-openjdk-11.0.17.0.8-2.el7_9.x86_64 はインストール済みか最新バージョンです
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ java-11-openjdk-devel.x86_64 1:11.0.17.0.8-2.el7_9 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

====================================================================================================
 Package                       アーキテクチャー
                                              バージョン                      リポジトリー     容量
====================================================================================================
インストール中:
 java-11-openjdk-devel         x86_64         1:11.0.17.0.8-2.el7_9           updates         3.4 M

トランザクションの要約
====================================================================================================
インストール  1 パッケージ

総ダウンロード容量: 3.4 M
インストール容量: 5.2 M
Is this ok [y/d/N]: y
Downloading packages:
java-11-openjdk-devel-11.0.17.0.8-2.el7_9.x86_64.rpm                         | 3.4 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : 1:java-11-openjdk-devel-11.0.17.0.8-2.el7_9.x86_64                  1/1
  検証中                  : 1:java-11-openjdk-devel-11.0.17.0.8-2.el7_9.x86_64                  1/1

インストール:
  java-11-openjdk-devel.x86_64 1:11.0.17.0.8-2.el7_9

完了しました!

Java8からJava11への切り替え

alternatives --config java
[root@SV-SATURN ~]# alternatives --config java

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

  選択       コマンド
-----------------------------------------------
*+ 1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64/jre/bin/java)
   2           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.17.0.8-2.el7_9.x86_64/bin/java)

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2
alternatives --config javac
[root@SV-SATURN ~]# alternatives --config javac

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

  選択       コマンド
-----------------------------------------------
*+ 1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64/bin/javac)
   2           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.17.0.8-2.el7_9.x86_64/bin/javac)

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

Java11へ切り替え後の確認

java -version
[root@SV-SATURN ~]# java -version
openjdk version "11.0.17" 2022-10-18 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.17.0.8-2.el7_9) (build 11.0.17+8-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.17.0.8-2.el7_9) (build 11.0.17+8-LTS, mixed mode, sharing)
javac -version
[root@SV-SATURN ~]# javac -version
javac 11.0.17

Jenkins起動

systemctl start jenkins
systemctl status jenkins
[root@SV-SATURN ~]# systemctl start jenkins
[root@SV-SATURN ~]# systemctl status jenkins
● jenkins.service - Jenkins Continuous Integration Server
   Loaded: loaded (/usr/lib/systemd/system/jenkins.service; disabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/jenkins.service.d
           mqoverride.conf
   Active: active (running) since 水 2022-11-09 08:38:48 JST; 8s ago
 Main PID: 31241 (java)
   CGroup: /system.slice/jenkins.service
           mq31241 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webr...

1109 08:38:47 SV-SATURN jenkins[31241]: 2022-11-08 23:38:47.722+0000 [id=53]        INFO  ...ver
1109 08:38:48 SV-SATURN jenkins[31241]: 2022-11-08 23:38:48.212+0000 [id=28]        INFO  ...ion
1109 08:38:48 SV-SATURN jenkins[31241]: 2022-11-08 23:38:48.313+0000 [id=22]        WARNIN...set
1109 08:38:48 SV-SATURN jenkins[31241]: 2022-11-08 23:38:48.313+0000 [id=22]        WARNIN...set
1109 08:38:48 SV-SATURN jenkins[31241]: 2022-11-08 23:38:48.313+0000 [id=22]        WARNIN...set
1109 08:38:48 SV-SATURN jenkins[31241]: 2022-11-08 23:38:48.431+0000 [id=22]        INFO  ...ing
1109 08:38:48 SV-SATURN systemd[1]: Started Jenkins Continuous Integration Server.
1109 08:38:49 SV-SATURN jenkins[31241]: [11/09/22 08:38:49] SSH Launch of sv-pluto.planet.... ms
1109 08:38:50 SV-SATURN jenkins[31241]: [11/09/22 08:38:50] SSH Launch of sv-neptune.plane... ms
1109 08:38:50 SV-SATURN jenkins[31241]: [11/09/22 08:38:50] SSH Launch of gitlab.sv-mars.p... ms
Hint: Some lines were ellipsized, use -l to show in full.

ブラウザでJenkins画面の確認

Jenkinsオジサン登場!

参考記事

www.publickey1.jp

インフラエンジニアになるための勉強のやり方

私は、某SIerに勤務しながら、WEB系エンジニア・インフラエンジニアに憧れて、プログラミングおよびインフラ技術の勉強をしています。

現在の会社で直接担当している業務の中では、決まった技術しか触れないけれど、
「他にも将来役に立ちそうなインフラ技術を勉強したい」「働きながらでもできる効率的なインフラエンジニアの勉強方法を知りたい」と考えている方のために、
①おすすめの書籍と、②おススメのオンライン学習サイトを紹介します。

働きながら勉強するための、おススメの書籍と、オンラインで学習できるサイトの紹介です。

インフラエンジニアの勉強ができるおススメ書籍

朝の通勤時や帰宅時の電車の中や、社外打合せへの移動中などに勉強するなら、やはり書籍が一番だと思います。

インフラエンジニアの教科書

LINE社に創業時から在籍しているインフラエンジニア・プロマネの「佐野裕」さんの本です。 twitter.com

膨大なトラフィックをさばくLINE社にて構築・保守を行っている現役エンジニアが記すITインフラの必須知識と経験の数々! サーバ、OS、ネットワーク機器、データセンター、購買と商談、障害対応、大規模インフラ、成長するために必要なスキルなど、基礎知識から実践まで言及。 ITインフラの世界が理解できる珠玉の1冊!

インフラエンジニアの教科書
(C&R研究所)
佐野裕

1週間でLPICの基礎が学べる本

Linuxの資格「LPIC」の試験対策を初心者向けに書いた入門書です。

Linuxの資格として広く知られているLPICですが、あまり知識の無いまま試験対策を始める人も多いのではないでしょうか。しかし、試験対策書は試験範囲についてのみ解説しているものが多く、初心者が理解するのは困難です。本書は、初心者がスムーズに試験対策を行えるよう、事前に基礎固めを行うLinux入門書です。試験情報や模擬問題も掲載しているので、資格取得を視野に入れた効率的な基礎学習が行えます。

1週間でLPICの基礎が学べる本
第3版 徹底攻略シリーズ
(インプレス)
中島能和

インフラエンジニアの勉強ができるオンライン学習サイト

Udemy (オンライン動画学習サイト)

Udemy(ユーデミー)は、オンラインで動画で学習できるサービスです。
ITエンジニア系の講座もたくさん公開されています。

≫Udemy 世界最大級のオンライン学習サイト

Udemyの特徴
  • ユーザー登録すれば、第1回の講座は無料で視聴できる
  • 無料のコンテンツもある
  • 過去に受講した人の人数や、受講した人の評価も表示されるので選びやすい

≫Udemy 世界最大級のオンライン学習サイト

開発の人気オンラインコース

以上、読んでいただきありがとうございました。