EclipseでTomcatを起動しようとしたら動かなくなった——Java学習中や開発現場でも頻繁に遭遇するトラブルです。
原因はポート競合・タイムアウト・JavaバージョンのミスマッチなどEclipse独自の設定まわりに集中しており、それぞれ対処法が異なります。
この記事では、表示されるエラーメッセージ別に原因と解決手順を解説します。
まず確認:コンソールとエラーメッセージを見る
Tomcatが起動しない場合、Eclipse下部のコンソールタブに「重大(SEVERE)」などのログが出ていることが多くあります。
まずコンソールを確認し、エラーの内容を把握してから以下の対処法に進むことで、最短で解決できます。
| 症状・エラーメッセージ | 主な原因 |
|---|---|
| ポート 8080 はすでに使用中です | Tomcatプロセスが残っている・別アプリと競合 |
| 〇〇秒内に始動できませんでした(タイムアウト) | 起動タイムアウト値が短すぎる |
| ドキュメントベースが存在しない、又は読めない | ワークスペースの一時フォルダーが壊れている |
| Failed creating java / 指定されたパスが見つかりません | JDKのパスが変わっている・バージョン不一致 |
| 1つ以上のポートが無効 | Tomcat管理ポート(8005)の設定値が空 |
| エラーなし・ステータスが「停止済み」のまま | プロジェクトのコンパイルエラーが残っている |
対処法1:Tomcatの「クリーン」を実行する
Eclipseが内部に持つTomcatの作業ディレクトリ(tmp0・tmp1フォルダー)が壊れていると、起動できなくなることがあります。
まず試すべき最も手軽な方法がクリーンです。
- Eclipse下部の「サーバー」タブを開く
(表示されていない場合は「ウィンドウ」→「ビューの表示」→「その他」→「サーバー」を選択) - 一覧のTomcatを右クリックして「クリーン」を選択する
- クリーン完了後、Tomcatを起動する
pom.xmlの変更後や長時間使用後に起動できなくなった場合は、クリーンだけで解決することが多くあります。
対処法2:ポート競合を解消する
Tomcatは起動時にポート8080・8005・8009の3つを使います。
Eclipseを強制終了した直後や、以前のTomcatプロセスが残っていると、これらのポートが使われたままになり起動できなくなります。
Windowsでプロセスを終了する
コマンドプロンプトを開き、以下のコマンドでポートを使用しているプロセスIDを調べます。
netstat -ano | findstr :8080
出力例:
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 19508
末尾のPID(例:19508)を使って、タスクマネージャーから該当プロセスを終了するか、以下のコマンドで強制終了します。
taskkill /F /PID 19508
PowerShellを使う場合は、8080・8005・8009の3ポートを一括終了できます。
$processes = Get-Process -Id (Get-NetTCPConnection -LocalPort 8080,8005,8009).OwningProcess
foreach($process in $processes) { Stop-Process $process.Id }
Macでプロセスを終了する
ターミナルを開き、以下のコマンドでポートを使用しているプロセスを調べます。
lsof -i:8080
PIDを確認して、killコマンドで終了します。
kill -9 PID番号
Eclipseのポート設定を変更する方法もある
プロセスを終了しても解決しない場合や、他のサービスが8080を使い続ける環境では、Tomcatのポート番号自体を変更します。
- 「サーバー」タブでTomcatをダブルクリックしてサーバー設定画面を開く
- 右側の「ポート」欄でHTTPポートを「8080」から別の番号(例:8090)に変更する
- 管理ポートも「8005」から「8015」に変更する
Ctrl + Sで保存してからTomcatを起動する
対処法3:起動タイムアウトを延長する
以下のようなエラーが出る場合は、Tomcatの起動に45秒では間に合っていません。
サーバー ローカル・ホスト の Tomcat v9.0 サーバー は 45 秒内に始動できませんでした。
サーバーがより多くの時間を必要とする場合、サーバー・エディターでタイムアウトを大きくしてください。
タイムアウト値を延長します。
- 「サーバー」タブでTomcatをダブルクリックしてサーバー設定画面を開く
- 「タイムアウト」セクションの「開始(秒)」の値を
45から120〜180程度に増やす Ctrl + Sで保存してからTomcatを再起動する
対処法4:JavaとTomcatのバージョンの組み合わせを確認する
JavaをアップデートしたあとにTomcatが起動しなくなる原因のひとつがバージョンの不一致です。
Apache公式ドキュメントによると、TomcatとJavaの対応関係は以下のとおりです。
| Tomcatバージョン | 必要なJavaの最低バージョン |
|---|---|
| Tomcat 9.x | Java 8以上 |
| Tomcat 10.0.x | Java 8以上 |
| Tomcat 10.1.x | Java 11以上 |
| Tomcat 11.0.x | Java 17以上 |
たとえばJava 8の環境でTomcat 10.1を使おうとすると起動できません。
また、JavaをアップデートすることでEclipseが参照するJDKのパスが変わり、旧パスが無効になるケースもあります。
EclipseのJRE設定を確認・変更する
- 「ウィンドウ」→「設定」→「Java」→「インストール済みのJRE」を開く
- 現在チェックが入っているJREのパスが正しいか確認する
- パスが古い場合は「追加」ボタンで正しいJDKを追加してチェックを付け直す
サーバーランタイム環境のJREを更新する
- 「ウィンドウ」→「設定」→「サーバー」→「ランタイム環境」を開く
- 使用中のTomcatを選択して「編集」をクリックする
- 「JRE」のドロップダウンを正しいJDKに変更して「完了」をクリックする
対処法5:Tomcat管理ポートの設定値を修正する
「1つ以上のポートが無効なため、サーバーを起動できません」というエラーが出る場合、Tomcat管理ポート(8005)の設定値が空(-)になっている可能性があります。
- 「サーバー」タブでTomcatをダブルクリックする
- 「ポート」欄の「Tomcat管理」が空欄または無効値(
-)になっていないか確認する - 空欄の場合は「8005」と入力する
Ctrl + Sで保存してからTomcatを起動する
対処法6:プロジェクトのターゲットランタイムを確認する
プロジェクトにTomcatのランタイムが紐づいていないと、起動しても正常に動作しないことがあります。
- プロジェクトエクスプローラーでプロジェクトを右クリックして「プロパティ」を開く
- 「ターゲットランタイム」を選択する
- 使用しているTomcatにチェックが入っていない場合はチェックを入れる
- 「適用して閉じる」をクリックしてTomcatを再起動する
対処法7:Serversフォルダー(ワークスペース設定)を削除して再作成する
ワークスペース内のTomcat設定ファイルが壊れている場合、サーバーを削除して作り直すと解決することがあります。
- 「サーバー」タブでTomcatを右クリックして「削除」を選択する
- プロジェクトエクスプローラーに「Servers」フォルダーが表示されている場合、フォルダーごと削除する
- 「サーバー」タブの空欄を右クリックして「新規」→「サーバー」を選択する
- 使用するTomcatのバージョンを選択してウィザードに従い再設定する
- プロジェクトを追加してサーバーを起動する
対処法8:コンパイルエラーを解消してからTomcatを起動する
プロジェクトにコンパイルエラー(赤いバツ印)が残っていると、Tomcatが「停止済み」のまま動かないことがあります。
- プロジェクトエクスプローラーでプロジェクトに赤いバツが出ていないか確認する
- エラーがある場合は「プロジェクト」→「プロジェクトのクリーン」を実行して再ビルドする
- コンパイルエラーがなくなったことを確認してからTomcatを起動する
対処法9:Eclipseを再起動する
Eclipseを強制終了したあとや、長時間使い続けたあとに内部状態がおかしくなっているケースでは、Eclipseを完全に終了して再起動するだけで解決することがあります。
再起動の前に作業中のファイルを保存するのを忘れないようにしてください。
TomcatとJavaの対応バージョン早見表(Apache公式より)
新しい環境を構築する際の参考として、Apache公式ドキュメントにもとづいた対応表を掲載します。
| Tomcatバージョン | 必要Java | サポート状況(2025年時点) |
|---|---|---|
| Tomcat 7.x | Java 6以上 | サポート終了(EOL) |
| Tomcat 8.5.x | Java 7以上 | サポート終了(EOL) |
| Tomcat 9.x | Java 8以上 | サポート中 |
| Tomcat 10.1.x | Java 11以上 | サポート中 |
| Tomcat 11.0.x | Java 17以上 | サポート中 |
Tomcat 7・8.5はすでにサポートが終了しているため、新規環境ではTomcat 9以降の使用が推奨されます。
まとめ
EclipseでTomcatが起動しない場合の確認順序は以下のとおりです。
- コンソールでエラーメッセージを確認する
- Tomcatの「クリーン」を試す(最も手軽)
- ポート競合(8080・8005・8009)を解消する
- タイムアウト値を延長する
- JavaとTomcatのバージョン対応を確認する
- Serversフォルダーを削除して再作成する
多くの場合「クリーン」か「ポート競合の解消」で解決します。
それでも改善しない場合はコンソールの「重大」ログの内容をもとに原因を絞り込み、上記の対処法を組み合わせて試してください。
参考情報源:
- Apache Tomcat® – Which Version Do I Want?(Apache公式)
- Apache Tomcat® – Migration Guide(Apache公式)
- Apache Tomcat 10.1 Migration Guide(Apache公式)
- Apache Tomcat 11.0 Migration Guide(Apache公式)
- KENスクールブログ「Tomcatが『ポートが使用中』で起動できない場合の対処方法」
- Qiita「【Java】『1つ以上のポートが無効』でTomcatが起動できない」
- アトトックラボ「EclipseでTomcatが起動できないときの対処法(タイムアウト)」

コメント