歡迎使用我的 在線工具

          小D

          讀歷史、看小說、寫程序都是我所愛。技術不好,頭腦不靈光,靠的是興趣。
          隨筆 - 35, 文章 - 25, 評論 - 13, 引用 - 0
          數(shù)據(jù)加載中……

          Java的ClassLoader

          ??//當前類的getResource等取得本地資源的方法是以當前類所在的文件夾為當前目錄,以bin目錄
          ??//也就是發(fā)布后的user.dir目錄為根目錄。
          ??//當前ClassLoader去本地資源是以bin目錄,或發(fā)布后的user.dir目錄為當前目錄。
          ??//而ClassLoader的根目錄恕我不知。
          ??//通過如下測試,可得出ClassLoader是沒有根目錄的。
          //??URL ss = SoundPlayTest.class.getClassLoader().getResource("");
          //??System.out.println(ss.getPath());
          ??//我想Eclipse沒有使用系統(tǒng)的ClassPath,它的ClassPath是在工程的.classpath文件中定義的。而且我想eclipse是使用的自己的ClassLoader的。

          ClassLoader的機制:

          Bootstrap ClassLoader/啟動類加載器
          主要負責jdk_home/lib目錄下的核心 api 或 -Xbootclasspath 選項指定的jar包裝入工作。
          Extension ClassLoader/擴展類加載器
          主要負責jdk_home/lib/ext目錄下的jar包或 -Djava.ext.dirs 指定目錄下的jar包裝入工作。
          System ClassLoader/系統(tǒng)類加載器
          主要負責java -classpath/-Djava.class.path所指的目錄下的類與jar包裝入工作。
          User Custom ClassLoader/用戶自定義類加載器(java.lang.ClassLoader的子類)
          在程序運行期間, 通過java.lang.ClassLoader的子類動態(tài)加載class文件, 體現(xiàn)java動態(tài)實時類裝入特性。

          ??//getResourceAsStream和ClassLoader.getSystemResourceAsStream的關系
          ??//首先getResourceAsStream調(diào)用自己的ClassLoader加載,如果沒有就是用ClassLoader.getSystemResourceAsStream
          ??//來加載資源。getSystemResourceAsStream從當前ClassLoader的類加載搜索路徑中查找資源。所以使用getResourceAsStream
          ??//也可以加載當前Classpath中的資源。

          ?

          posted on 2009-11-04 20:53 vagasnail 閱讀(435) 評論(0)  編輯  收藏 所屬分類: Java

          主站蜘蛛池模板: 客服| 建德市| 大洼县| 区。| 商南县| 额尔古纳市| 德州市| 治多县| 贺州市| 寿阳县| 孟州市| 合阳县| 南通市| 成安县| 肇源县| 延寿县| 仪征市| 额尔古纳市| 任丘市| 博客| 深州市| 宁乡县| 弋阳县| 搜索| 巫溪县| 淮安市| 会理县| 大关县| 东宁县| 墨竹工卡县| 林芝县| 临沭县| 兰州市| 锦州市| 邻水| 丰原市| 界首市| 章丘市| 广元市| 贵定县| 阿克陶县|