| この記事の要点 |
|
エラーの状況
Eclipse で動的 Web プロジェクト(Dynamic Web Project)を開いたときに、問題ビューに以下のエラーが表示されます:
Description: ビルド・パスが不完全であるため、プロジェクトはビルドされませんでした。
org.apache.tomcat.InstanceManager のクラス・ファイルが見つかりません。
ビルド・パスを修正してから、プロジェクトの取り消しおよび再ビルドを行ってください。
Resource: (project name)
Path: (project path)
Location: 不明
Type: Java の問題
Eclipse が InstanceManager クラスを見つけられず、プロジェクト全体のビルドが失敗している状態です。同時に「型 org.apache.tomcat.InstanceManager を解決できません」が複数の Servlet クラスで出ます。
原因
org.apache.tomcat.InstanceManager は Tomcat のランタイム jar に含まれるクラスです(実体は $CATALINA_HOME/lib/tomcat-api.jar または tomcat-util.jar)。Eclipse は動的 Web プロジェクトに「ターゲット・ランタイム」として Tomcat を関連付けることで、このクラスをクラスパスに通します。
このエラーは以下の状況で発生:
- git clone した他人のプロジェクトを初めて開いたとき(最頻出)
- Eclipse に Tomcat ランタイムを登録していない
- 登録済み Tomcat のパスが無効(フォルダ移動・削除)
- プロジェクトのターゲット・ランタイムが選択されていない
- ワークスペースを別 PC からコピーしてきたとき
対処1: ターゲット・ランタイムを設定
プロジェクトを右クリックして プロパティ → ターゲット・ランタイムを開き、Tomcat にチェックを入れます。
| 手順 | 操作 |
|---|---|
| 1 | プロジェクト右クリック → プロパティ (Properties) |
| 2 | 左ペインから ターゲット・ランタイム (Targeted Runtimes) を選択 |
| 3 | 表示されている Tomcat (Apache Tomcat v9.0 など) にチェック |
| 4 | 適用して閉じる |
| 5 | プロジェクト右クリック → Maven → プロジェクトの更新 (Maven プロジェクトの場合) |
| 6 | プロジェクト右クリック → クリーン → ビルド |
対処2: ランタイム自体が登録されていない場合
「ターゲット・ランタイム」のリストが空、または Tomcat が表示されない場合は、Eclipse 側に Tomcat ランタイムを先に登録します。
ウィンドウ (Window) → 設定 (Preferences)
→ サーバー (Server)
→ ランタイム環境 (Runtime Environments)
→ 追加 (Add...) を押す
→ Apache → Apache Tomcat v9.0 (使うバージョン) を選択
→ 「次へ」
→ Tomcat installation directory にインストール先を指定
例: C:\apache-tomcat-9.0.85
Mac: /usr/local/Cellar/tomcat@9/9.0.85/libexec
→ JRE を選択
→ 「完了」
追加後、プロジェクトのプロパティに戻って先ほどの「対処1」を実行します。
対処3: Tomcat フォルダを移動した場合
「ランタイム環境」に Tomcat はあるけれど、Tomcat フォルダ自体を移動・削除した場合は、登録済み Tomcat の「編集 (Edit)」からインストールパスを正しいパスに直します。
確認
対処後、プロジェクトのプロパティ → Java のビルド・パス → ライブラリーを開くと、Apache Tomcat の jar 群が読み込まれていることを確認できます。Servlet クラスを開いて import org.apache.tomcat.InstanceManager; がエラーにならなければ解決です。
サーバービュー側からの確認
Eclipse 下部の サーバービュー (Servers) でも切り分けが可能です。表示されていない場合は ウィンドウ → ビューの表示 → サーバーで開きます。
- サーバービューに登録された Tomcat が 「停止」状態ならまだ問題ない
- サーバービュー自体が空なら 右クリック → 新規 → サーバーから追加
- 追加した Tomcat に右クリック → 追加と除去でプロジェクトをサーバーに登録
- サーバービューで Tomcat をダブルクリック → サーバーの場所が「Use Tomcat installation」になっていれば本物の Tomcat が使われる
Maven プロジェクトの場合
Maven プロジェクトでも同じ症状が出ます。pom.xml に Servlet API 依存を provided スコープで追加することでも代替可能です(Tomcat ランタイム関連付けと同等の効果):
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
<!-- Tomcat 9 系(javax.servlet)の場合 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
provided スコープにすることで、デプロイ時には Tomcat 側の jar が使われ、ビルド時のみクラスパスに含まれるようになります(重複起因のエラーを避けられます)。
解決後に何度も再発する場合
| 症状 | 確認ポイント |
|---|---|
| Eclipse を再起動すると再発 | ワークスペースの破損 — 別ワークスペースで開き直す |
| 特定プロジェクトだけ再発 | .project / .classpath が古い → 削除して「Maven プロジェクトとしてインポート」 |
| 全プロジェクトで再発 | Eclipse のキャッシュ破損 — workspace/.metadata/ を退避してから再起動 |
| Servlet 5.x プロジェクトで発生 | Tomcat 10 系(jakarta.servlet)を使う必要あり。Tomcat 9 だと別エラー |
関連
- 同じ原因で「型
org.apache.tomcat.InstanceManagerを解決できません」も同時に発生する - Maven プロジェクトなら
pom.xmlの<dependency>に Servlet API がprovidedスコープで入っていることを確認 - Gradle なら
compileOnly 'jakarta.servlet:jakarta.servlet-api:6.0.0'相当
関連情報
- 同じ原因で「型
org.apache.tomcat.InstanceManagerを解決できません」も発生 - Tomcat 10 系では
javax.servlet→jakarta.servletへパッケージ名が変更されている - Spring Boot 3 + 内蔵 Tomcat の場合は外部 Tomcat が不要なので、別の構成エラーを疑う
子ページはありません
- ビルド・パスが不完全であるため、プロジェクトはビルドされませんでした。org.apache.tomcat.InstanceManager のクラス・ファイルが見つかりません。ビルド・パスを修正してから、プロジェクトの取り消しおよび再ビルドを行ってください。
- 型 org.apache.tomcat.InstanceManager を解決できません。必要な .class ファイルから間接的に参照されています
- 要求されたリソースへのアクセスが拒否されました
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09