放翁(文初)的一畝三分地

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            210 隨筆 :: 1 文章 :: 320 評論 :: 0 Trackbacks
          <2008年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(34)

          隨筆檔案

          淘寶同學的blog

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

           在《Java 載入Jar內資源問題的探究》這個文檔貼出來以后,有朋友給了我反饋,最終知道了問題就出現在JarOutputstream輸出的時候,雖然支持直接寫入目錄中的文件來同時產生目錄和文件,但是這樣在jar中目錄就不是一個有效的entry,因此在資源定位的時候就無法得到,因此必須也把目錄作為entry寫入,這樣才會正常定位資源。這個問題作了測試以后反饋到我們的工具開發人員那邊,做了修改以后一切都恢復正常,細節決定成敗,那么一點細微的差異,會讓各種框架都無法正常運作。

          代碼修改如下:

          JarOutputStream jos;

                 try

                 {

                     jos = new JarOutputStream(new BufferedOutputStream(new FileOutputStream(file)));

                     String f = "spring/sip-analyzer-dataSource.xml";

                     String dir = "spring/";
                     JarEntry je1 = new JarEntry(dir);
                     jos.putNextEntry(je1);

             
               
              
                     JarEntry je =
          new JarEntry(f);

                     jos.putNextEntry(je);

                     BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:/work/sip3/analyzer/src/conf.test/spring/sip-analyzer-dataSource.xml"));

                     int i = 0;

                     while ((i=bis.read())!=-1)

                     {

                        jos.write(i);

                     }

                     bis.close();

                     jos.closeEntry();

                     jos.close();

          } catch  ...

          posted on 2008-06-03 14:24 岑文初 閱讀(2339) 評論(3)  編輯  收藏

          評論

          # re: Java 載入Jar內資源問題的探究(后續) 2008-06-03 17:52 找人罵
          URL url = Thread.currentThread().getClass().getResource("/org/apache/cxf/APIMessages.properties");
          url = ResourceUtils.extractJarFileURL(url);
          System.out.println(url.getProtocol());
          File file = ResourceUtils.getFile(url);
          String text = FileCopyUtils.copyToString(new FileReader(file));

          如果沒有這句會報錯:
          ResourceUtils.extractJarFileURL(url);  回復  更多評論
            

          # re: Java 載入Jar內資源問題的探究(后續)[未登錄] 2008-06-03 18:13 wonder
          不錯,學習了。  回復  更多評論
            

          # re: Java 載入Jar內資源問題的探究(后續) 2008-07-26 16:04 zhuxing
          俺也遇到過entry沒有顯示寫入,訪問出問題了  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 墨脱县| 榆社县| 江阴市| 大荔县| 寿宁县| 特克斯县| 衡山县| 洛扎县| 宜兰县| 青岛市| 民勤县| 大埔区| 佛学| 盐津县| 香港| 阿拉尔市| 土默特左旗| 临城县| 宁晋县| 石阡县| 苍山县| 峨边| 墨竹工卡县| 壤塘县| 高密市| 页游| 泸溪县| 军事| 通山县| 霍州市| 河池市| 中卫市| 周宁县| 攀枝花市| 仪征市| 济源市| 孝昌县| 奉节县| 隆昌县| 海丰县| 东乡族自治县|