この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:4
ページ更新者:guest
更新日時:2026-05-15 07:16:53

タイトル: 型 org.apache.tomcat.InstanceManager を解決できません。必要な .class ファイルから間接的に参照されています
SEOタイトル: Eclipse「型 org.apache.tomcat.InstanceManager を解決できません」原因と対処

この記事の要点
  • 「型 org.apache.tomcat.InstanceManager を解決できません」は動的 Web プロジェクトに Tomcat ランタイムが関連付けられていないのが原因
  • 対処: プロジェクト右クリック → プロパティ → ターゲット・ランタイムで Tomcat にチェック
  • Eclipse に Tomcat ランタイムが未登録ならウィンドウ → 設定 → サーバー → ランタイム環境で追加
  • git clone 直後の他人プロジェクトでよく発生(個人ごとの Eclipse 設定はリポジトリに入らない)
  • 同じ原因で「ビルド・パスが不完全」エラーもセットで発生する

エラー内容

Eclipse でソースを開いたときに以下のようなエラーが出ます:

Description: 型 org.apache.tomcat.InstanceManager を解決できません。
必要な .class ファイルから間接的に参照されています

Resource: MyServlet.java
Location: line 1
Type: Java の問題

同種の問題ビューエラー「ビルド・パスが不完全であるため、プロジェクトはビルドされませんでした」も一緒に発生することが多いです。プロジェクト中の Servlet を継承しているクラス全てで同じエラーが出ます。

原因

org.apache.tomcat.InstanceManagerTomcat のランタイム jarに含まれる API クラスです。javax.servlet.http.HttpServlet を継承するクラスでは Tomcat が間接的にこのクラスを参照するため、ビルドパスに Tomcat の jar が必要になります。

Eclipse の動的 Web プロジェクトでは「ターゲット・ランタイム」として Tomcat を関連付けることで、コンパイル時にこのクラスを参照可能にします。このエラーは以下の状況で発生:

  • git clone した他人のプロジェクト(自分の Eclipse に未登録の Tomcat を期待している)
  • Tomcat ランタイムが Eclipse に登録されていない
  • プロジェクトにターゲット・ランタイムが選択されていない
  • 登録済み Tomcat のパスが無効(Tomcat フォルダ移動・削除)
  • ワークスペースを別 PC からコピーしたとき

切り分けのフロー

確認順確認内容NG だった場合
1プロジェクトプロパティ → ターゲット・ランタイムで Tomcat にチェックが入っているかチェックを入れる
2ターゲット・ランタイムのリストに Tomcat が表示されているかウィンドウ → 設定 → サーバー → ランタイム環境で追加
3登録された Tomcat のインストールパスが実在するか編集して正しいパスに修正
4Java のビルド・パス → ライブラリーに Apache Tomcat の jar 群が見えるか1〜3 をやり直し
5プロジェクト → クリーン → 全プロジェクトを再ビルドMaven プロジェクトなら更新も実行

対処手順

ステップ 1: Tomcat をランタイムとして登録

ウィンドウ (Window) → 設定 (Preferences)
  → サーバー (Server) → ランタイム環境 (Runtime Environments)
  → 追加 (Add...)
  → Apache → Apache Tomcat v9.0 を選択 → 次へ
  → Tomcat installation directory にパスを設定
    Windows: C:\apache-tomcat-9.0.85
    Mac:     /usr/local/Cellar/tomcat@9/9.0.85/libexec
    Linux:   /opt/tomcat
  → JRE を選択 → 完了

ステップ 2: プロジェクトに関連付け

プロジェクト右クリック → プロパティ
  → ターゲット・ランタイム
  → Apache Tomcat v9.0 にチェック
  → 適用して閉じる

ステップ 3: 再ビルド

1. プロジェクト → クリーン (Project → Clean...)
2. 対象プロジェクトを選択 → 「クリーン」
3. Maven プロジェクトの場合は追加で:
   プロジェクト右クリック → Maven → プロジェクトの更新 → 「OK」
4. 問題ビューが消えるのを確認

git clone 後にチームメンバー間で発生しないようにする

Eclipse の .settings/.classpath はリポジトリに含めても個人パスが入っているため、結局メンバー側で再設定が必要です。プロジェクトの README に「ターゲット・ランタイムに Tomcat 9.0 を設定すること」と明記しておくのが現実的です。

関連エラー

  • ビルド・パスが不完全であるため、プロジェクトはビルドされませんでした — 同じ原因。同時に直る
  • The type javax.servlet.http.HttpServlet cannot be resolved — Servlet API jar 不足。Tomcat ランタイムで解決
  • HTTP Status 404 - /myapp/ — ランタイム関連付けは出来ても WAR デプロイがされていない可能性