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

更新履歴

取得中です。


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

    C言語-まとめ
  • 6160日前

    Emacs-Tips
  • 6162日前

    Python-まとめ
  • 6164日前

    Python-Tips
  • 6165日前

    GoogleAppEngine-Tips
  • 6165日前

    VMWare-Tips
  • 6166日前

    Windows-Tips
  • 6166日前

    Linux-Tips
  • 6167日前

    Screen-Tips
  • 6168日前

    トップページ
もっと見る
「Tips」関連ページ
  • No Image GoogleAppEngine-Tips
  • No Image Java-スコープの話
  • No Image Gtags
  • No Image OCHAGL
  • No Image MySQL-Tips
  • No Image Java-Tips
  • No Image xyzzy-Tips
  • No Image Java-インナークラス
  • No Image Java-例外と継承
  • No Image Emacs-Tips
最近更新されたページ
  • 6157日前

    C言語-まとめ
  • 6160日前

    Emacs-Tips
  • 6162日前

    Python-まとめ
  • 6164日前

    Python-Tips
  • 6165日前

    GoogleAppEngine-Tips
  • 6165日前

    VMWare-Tips
  • 6166日前

    Windows-Tips
  • 6166日前

    Linux-Tips
  • 6167日前

    Screen-Tips
  • 6168日前

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

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

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

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

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. 検索してはいけない言葉 @ ウィキ
  6. 発車メロディーwiki
  7. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  8. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  9. オレカバトル アプリ版 @ ウィキ
  10. モンスター烈伝オレカバトル2@wiki
もっと見る
全体ページランキング

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

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. 千鳥の鬼レンチャン 挑戦者一覧 - 千鳥の鬼レンチャン サビだけカラオケデータベース
  3. 召喚 - PATAPON(パタポン) wiki
  4. ロスサントス警察 - ストグラ まとめ @ウィキ
  5. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  6. ステージ - PATAPON(パタポン) wiki
  7. 犬 ルリ - ストグラ まとめ @ウィキ
  8. ステージ攻略 - パタポン2 ドンチャカ♪@うぃき
  9. 鬼太郎誕生 ゲゲゲの謎 - アニヲタWiki(仮)
  10. 鬼レンチャン(レベル順) - 鬼レンチャンWiki
もっと見る

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

2019 AtWiki, Inc.