この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
■初めに
IPAの情報によると、Oracle 社から Java SE に関する脆弱性が公表されており、早急なアップデートが必要です。
私も上記に該当するJavaの実行環境を使っていたのでアップデートを行ってみました。
その際、内蔵しているTomcatのサービス起動時にエラーが出てしまいましたので、その解消方法を記載したいと思います。
実行環境は以下の通りです。
- OS:Windows
- JRE:Oracle Java SE 8 Update 281(旧) → Oracle Java SE 8 Update 291(新)
- Tomcat:apache-tomcat-9.0.45
■Javaのアップデート手順
Javaのアップデートは以下のように行いました。
1.旧バージョンのJavaをアンインストール
①下記サイトよりJavaのアンインストールツールをダウンロード
②Javaのアンインストールツール「JavaUninstallTool.exe」 を実行する
③アンインストールの説明文通り、削除を進めていく
削除して問題ないかよく確認しましょう
アンインストールが完了しました
2.Javaのインストール
①下記サイトより最新版のJavaをダウンロードします
私は64ビット版をダウンロードしました。実行環境に合わせてダウンロードをしてください。
②ダウンロードした「jre-8u291-windows-x64.exe」を実行します
③インストーラーに従いインストールを実行します
最新版のJavaがインストールされました
④環境変数を編集する
JRE_HOMEをJavaのインストールしたフォルダに指定する
■ApacheTomcatの設定を編集する
ここから本題となります。
私はJavaのアップデートを行った後Tomcatのサービスを起動したとき下のようなエラーがでました。
結論から申し上げますと、このエラーはApacheTomcatが指定したJavaのパスが古いことを意味しております。
カタリナのログにも下記のエラーが吐かれておりました。
- Failed creating Java ‘C:\Program Files\Java\jre1.8.0_281\bin\server\jvm.dll’.
Tomcatが旧バージョンのフォルダにあるjvm.dllを見に行っていることがわかります。
環境変数を治すだけでは、このエラーは解消されません。
ここからはこのエラーを解消するための方法を記載いたします。
①ApacheTomcatのプロパティを開く
コマンドプロンプトを起動し、ApacheTomcatが存在するbinフォルダに遷移したあと下記コマンドを使用し、ApacheTomcatのプロパティを開いてください
- cd [ApacheTomcatが存在するbinディレクトリ]
- Tomcat9W //ES//[サービス名]
②ApacheTomcatのプロパティからJavaの設定を行う
Javaを押下する。
Java Virtuial Machineにjvm.dllのパスが記載されているので「…」を押下し新しいJavaのjvm.dllを指定する。
変更が完了したら「適用」を押下し、「OK」を押下。
これで解決しましたので、登録したApacheTomcatのサービスを開始することができます。