<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    MDA/MDD/TDD/DDD/DDDDDDD
    posts - 536, comments - 111, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    ClassNotFoundException和NoClassDefError之間的區別

    Posted on 2007-04-26 15:55 leekiang 閱讀(6233) 評論(4)  編輯  收藏 所屬分類: java

    ClassNotFoundException發生在裝入階段。
    當應用程序試圖通過類的字符串名稱,使用常規的三種方法裝入類,但卻找不到指定名稱的類定義時就拋出該異常。

    NoClassDefFoundError: 當目前執行的類已經編譯,但是找不到它的定義時

    也就是說你如果編譯了一個類B,在類A中調用,編譯完成以后,你又刪除掉B,運行A的時候那么就會出現這個錯誤

    加載時從外存儲器找不到需要的class就出現ClassNotFoundException
    連接時從內存找不到需要的class就出現NoClassDefFoundError

    大概這樣的吧,JDK API里面的解釋
    1.NoClassDefFoundError
    當 Java 虛擬機或 ClassLoader 實例試圖在類的定義中加載(作為通常方法調用的一部分或者作為使用 new 表達式創建的新實例的一部分),但無法找到該類的定義時,拋出此異常。
    當前執行的類被編譯時,所搜索的類定義存在,但無法再找到該定義。

    2.ClassNotFoundException
    當應用程序試圖使用以下方法通過字符串名加載類時,拋出該異常:
    * Class 類中的 forName 方法。
    * ClassLoader 類中的 findSystemClass 方法。
    * ClassLoader 類中的 loadClass 方法。
    但是沒有找到具有指定名稱的類的定義。從 1.4 版本開始,此異常已經更新,以符合通用的異常鏈機制。在構造時提供并通過 getException() 方法訪問的“加載類時引發的可選異常”,現在被稱為原因,它可以通過 Throwable.getCause() 方法以及與上面提到的“遺留方法”來訪問。

    http://www.javaeye.com/topic/21141?page=1


    評論

    # re: ClassNotFoundException和NoClassDefError之間的區別  回復  更多評論   

    2009-11-22 17:35 by 11
    java.lang.NoClassDefFoundError出現的可能幾種情況
    1、確實有某個類不存在。
    2、某個類所依賴的class或jar不存在,導致未正常加載。
    3、單實例類,由于初始化出錯,也會拋出該error。
    4、對于有些框架,自動生成java bean的時候,如果相應的class沒有提供默認構造函數,會拋此異常。

    # re: ClassNotFoundException和NoClassDefError之間的區別  回復  更多評論   

    2009-11-22 17:35 by 11
    還有幾種情況
    1、類文件存在,但處于不同的Domain中,有可能無法正常加載,特別是基于OSGI的體系,這種情況很常見
    2、即使一個類不是單例,如果有static{}代碼,其中出錯了,也無法加載

    # re: ClassNotFoundException和NoClassDefError之間的區別  回復  更多評論   

    2009-11-22 17:36 by 11
    真的是NoClassDefFoundError嗎

    前兩天碰到一個奇怪的問題,異常的信息就是NoClassDefFoundError,但是需要加載的類肯定是可以找得到的,最后問題的根源在于內存不足,由于產品需要加載的類非常的多,到現在我們的maxPermSize已經需要設置為128m了,而那個錯誤就是由于內存不足,類初始化的時候內存不足無法初始化成功導致出現 NoClassDefFoundError,這個就讓我聯想到原來經常遇到的類實例初始化的異常,最終報的錯也是 NoClassDefFoundError,呵呵,所以,以后遇到這個異常要仔細看看后面的詳細異常信息,如果是<clinit>拋出的,基本上就是初始化失敗而不是真正的找不到類定義了。
    http://www.jiehoo.com/%E7%9C%9F%E7%9A%84%E6%98%AFnoclassdeffounderror%E5%90%97.htm

    # re: ClassNotFoundException和NoClassDefError之間的區別  回復  更多評論   

    2016-01-15 17:39 by jiangzx
    NoClassDefFound may indicate the class is not there, as the javadocs indicate, but it is typically thrown when, after the classloader has loaded the bytes for the class and calls "defineClass" on them. Also carefully check your full stack trace for other clues or possible "cause" Exceptions (though your particular backtrace shows none).

    From: http://stackoverflow.com/questions/1401111/noclassdeffounderror-could-not-initialize-class-error
    主站蜘蛛池模板: 欧美三级在线电影免费| 99久久久国产精品免费无卡顿| 日韩免费电影在线观看| 亚洲综合色丁香婷婷六月图片 | 亚洲精品国产综合久久一线| 日本亚洲欧美色视频在线播放| 精品国产免费观看久久久| 亚洲GV天堂无码男同在线观看 | 日韩精品无码一区二区三区免费| 久久久久久a亚洲欧洲aⅴ| 久99久无码精品视频免费播放| 久久精品夜色噜噜亚洲A∨| 中文字幕成人免费高清在线视频| 久久精品国产亚洲Aⅴ蜜臀色欲| jizz免费一区二区三区| 精品国产亚洲一区二区在线观看| 中文字幕在线视频免费观看 | 亚洲日韩在线第一页| 国产免费人成视频在线播放播| 国产亚洲色婷婷久久99精品| 无码午夜成人1000部免费视频| 久久99亚洲网美利坚合众国| 野花高清在线观看免费3中文| 亚洲乱码无人区卡1卡2卡3| 无码专区一va亚洲v专区在线| 男女一边摸一边做爽的免费视频| 久久夜色精品国产嚕嚕亚洲av| 亚洲视频在线观看免费视频| 亚洲色大成网站WWW国产| 亚洲精品人成无码中文毛片| 久久青草免费91观看| 亚洲国产成人超福利久久精品| 日本一道在线日本一道高清不卡免费| 五月天国产成人AV免费观看| 亚洲视频在线视频| 暖暖免费高清日本中文| 国产免费人成视频在线播放播| 亚洲噜噜噜噜噜影院在线播放| 少妇亚洲免费精品| 亚洲精品免费在线视频| 无人视频免费观看免费视频 |