atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
オチャメモ
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
オチャメモ
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
オチャメモ
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • オチャメモ
  • Java-クラスローダ

オチャメモ

Java-クラスローダ

最終更新:2008年08月24日 10:41

ochamemo

- view
だれでも歓迎! 編集

オチャメモ

  • クラスローダ [#f51ef5ca]
    • 説明 [#ke7da86b]
    • クラスローダに伴う例外 [#ub1ea6ac]
    • まとめ [#w21232ab]
    • 参考 [#p7281efb]

クラスローダ

説明

クラスは必ず以下のいずれかのクラスローダに保持されています(厳密にはちょっと違いますが)。
保持するとは、クラスローダがメモリ上にクラス定義を持っているということです。
※以下はweblogicの例です。

#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (05.png)

各クラスは、属しているクラスローダの親クラスローダに対してしか検索要求を出せません。
つまり、参照しているクラスが子クラスローダに保持されている場合や
.classが見つからない場合、例外が発生します。
上の例で言うと、BarクラスのメンバとしてFooクラスは保持できますが、AservletクラスやBservletクラスは、
保持できないということです。
以下は各クラスローダがどこを検索するのかを示したものです。

#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (04.png)

クラスローダの検索は以下のような手順で実行されます。

  1. ウェブクラスローダが自分が保持しているクラスをチェック。なければアプリクラスローダへ委譲
    +アプリクラスローダが自分が保持しているクラスをチェック。なければシステムクラスローダへ委譲
    +システムクラスローダがCLASSPATHを検索。なければアプリクラスローダへ委譲
    +アプリクラスローダがAPP-INFを検索。なければウェブクラスローダへ委譲
    +ウェブクラスローダがWEB-INFを検索。なければ例外
    **クラスローダに伴う例外 [#ub1ea6ac]
  • NoClassDefFoundError
    メソッド呼び出やnewなどのインスタンス生成で、クラス定義が見からない場合にスローされる。
    コンパイル時にソースはあったが、いざ実行使用としたら、.classファイルがない場合などに発生する。
  • ClassNotFoundException
    Class.foNameなどでクラスの文字列名を使用してクラス定義をロードしようとしたが、
    クラス定義が見つからなかった場合にスローされる。
    Class クラスの forName メソッド
    ClassLoader クラスの findSystemClass メソッド
    ClassLoader クラスの loadClass メソッド 
    

まとめ

  • メモリ上にクラス定義がない場合親クラスローダに委譲する
  • 子クラスローダには委譲できない
  • 基本的に一番トップの親から順にクラスロードされると考えてよい
  • newしたときにクラスがみつからなかったらNoClassDefFoundError
  • Class.ForNameでクラスが見つからなかったらClassNotFoundException

参考

http://www.techscore.com/tech/J2EE/Servlet/supplement-1.html

「Java-クラスローダ」をウィキ内検索
LINE
シェア
Tweet
オチャメモ
記事メニュー

メニュー

  • Tips
  • まとめ
  • ハマリ
  • 本
  • その他
  • このwikiのページ一覧

リンク

  • ブログ
  • OCHAGL
  • Wiki文法

アクセス数

  • 本日: -
  • 昨日: -
  • 全体: -


ここを編集
記事メニュー2

更新履歴

取得中です。


ここを編集
最近更新されたページ
  • 6179日前

    C言語-まとめ
  • 6182日前

    Emacs-Tips
  • 6183日前

    Python-まとめ
  • 6185日前

    Python-Tips
  • 6186日前

    GoogleAppEngine-Tips
  • 6186日前

    VMWare-Tips
  • 6187日前

    Windows-Tips
  • 6187日前

    Linux-Tips
  • 6188日前

    Screen-Tips
  • 6189日前

    トップページ
もっと見る
「Tips」関連ページ
  • Gtags
  • Java-Tips
  • MySQL-Tips
  • Java-デザパタ
  • Eclipse-Tips
最近更新されたページ
  • 6179日前

    C言語-まとめ
  • 6182日前

    Emacs-Tips
  • 6183日前

    Python-まとめ
  • 6185日前

    Python-Tips
  • 6186日前

    GoogleAppEngine-Tips
  • 6186日前

    VMWare-Tips
  • 6187日前

    Windows-Tips
  • 6187日前

    Linux-Tips
  • 6188日前

    Screen-Tips
  • 6189日前

    トップページ
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  2. MadTown GTA (Beta) まとめウィキ
  3. R.E.P.O. 日本語解説Wiki
  4. シュガードール情報まとめウィキ
  5. ソードランページ @ 非公式wiki
  6. ヒカマーWiki
  7. AviUtl2のWiki
  8. シミュグラ2Wiki(Simulation Of Grand2)GTARP
  9. Dark War Survival攻略
  10. 星飼いの詩@ ウィキ
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  5. 初音ミク Wiki
  6. 検索してはいけない言葉 @ ウィキ
  7. Abiotic Factor 日本語攻略Wiki
  8. 英傑大戦wiki
  9. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  10. 発車メロディーwiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. サーヴァント/一覧/クラス別 - Fate/Grand Order @wiki 【FGO】
  2. U-オルガマリー - Fate/Grand Order @wiki 【FGO】
  3. 参加者一覧 - ストグラ まとめ @ウィキ
  4. 暦家 - ストグラ まとめ @ウィキ
  5. アルジャーノンに花束を - アニヲタWiki(仮)
  6. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  7. 二段ジャンプ(削除審議中・相談無しの一覧項目) - アニヲタWiki(仮)
  8. いますぐ輪廻 - 初音ミク Wiki
  9. 市長補佐 - ストグラ まとめ @ウィキ
  10. 機体一覧 - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.