【XAMPP】Tomcatが起動しないときの対応方法

今回は、「XAMPP」で「Tomcat」を起動するとき、次のようなエラーメッセージが表示されて起動できないときの対応方法を紹介していきます。

[Tomcat] Attempting to start Tomcat app...
[Tomcat] Tomcat Started/Stopped with errors, return code: 1
[Tomcat] Make sure you have Java JDK or JRE installed and the required ports are free
[Tomcat] Check the "/xampp/tomcat/logs" folder for more information
スポンサーリンク

検証環境

検証に使用した環境/ライブラリを次に記載します。

  • XAMPP
    • バージョン:7.4.29
  • AdoptOpenJDK
    • バージョン:jdk-17.0.3+7
  • Java SE Development Kit
    • バージョン:17.0.3.1

原因

エラーメッセージの「Make sure you have Java JDK or JRE installed and the required ports are free」は、次のような意味になります。

Javaの「JDK」、または、「JRE」がインストールされている状態で指定のポートが開いていることを確認してください。

「XAMPP」は「Tomcat」を起動するときに「レジストリ」の値を参照しています。Javaをインストールしていても「レジストリ」に適切な値が設定されていない場合は、起動できないことがあります。

ポートが使用されている場合は、次のようなエラーになります。

[Tomcat] Problem detected!
[Tomcat] Port 8080 in use by "C:xxxx.exe"!
[Tomcat] Tomcat WILL NOT start without the configured ports free!
[Tomcat] You need to uninstall/disable/reconfigure the blocking application
[Tomcat] or reconfigure Tomcat and the Control Panel to listen on a different port

確認方法

「XAMPP」で「Tomcat」を起動するときに参照する「レジストリ」の名称は、次のようになります。複数の「レジストリ」の名称が存在しているのは、Javaのバージョンにより値が異なるためです。

「レジストリ」の名称インストール契機
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit「Java 9」未満(「Java 8」など)の「JDK」をインストールする。
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JDK「Java 9」以上(「Java 9」など)の「JDK」をインストールする。
HKEY_LOCAL_MACHINE\SOFTWARE\AdoptOpenJDK\JDK検証できませんでした。
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment「Java 9」未満(「Java 8」など)の「JRE」をインストールする。
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JRE「Java 9」以上(「Java 9」など)の「JRE」をインストールする。
HKEY_LOCAL_MACHINE\SOFTWARE\AdoptOpenJDK\JRE検証できませんでした。
検索対象の「レジストリ」の名称とインストール契機の一覧

Javaをインストールすると自動的に「レジストリ」も登録されますが、特定のJDKなどは登録されないため注意してください。

「AdoptOpenJDK」は、インストールするときに「レジストリ」に設定するオプションを選択しないとインストールされないため注意してください。

「レジストリ」に登録されているかどうかは、コマンドプロンプトなどで次のコマンドで確認することができます。

reg query 検索レジストリーキー名称 /s

コマンド例は、次のようになります。

【取得成功】

取得成功した場合は、次のような結果が表示されます・

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JDK" /s

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JDK
    CurrentVersion    REG_SZ    17.0.3.1

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JDK\17.0.3.1
    JavaHome    REG_SZ    C:\Program Files\Java\jdk-17.0.3.1

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JDK\17.0.3.1\MSI
    INSTALLDIR    REG_SZ    C:\Program Files\Java\jdk-17.0.3.1\
    NOSTARTMENU    REG_SZ    0

取得した結果に「JavaHome」の項目が存在していれば、動作することができます。

【取得失敗】

取得失敗した場合は、次のような結果が表示されます。

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit" /s
エラー: 指定されたレジストリ キーまたは値が見つかりませんでした

取得できないことを示すメッセージが表示される動作になります。

解決方法

「レジストリ」を確認して値が取得できない場合は、Javaを再インストールすることで修復できます。

まとめ

「XAMPP」で「Tomcat」が起動できないときの原因と解決方法を紹介しました。

参考資料

Javaをインストールしたときに設定される「レジストリ」の名称については、次の資料も参考にしてみてください。

Microsoft WindowsプラットフォームでのJDKおよびJREのインストール