子在川上曰

            逝者如斯夫不舍晝夜
          隨筆 - 71, 文章 - 0, 評論 - 915, 引用 - 0

          導航

          隨筆分類(72)

          搜索

          •  

          積分與排名

          • 積分 - 592723
          • 排名 - 81

          最新評論

          閱讀排行榜

          JAVA Appliation下取得資源文件的路徑

          今天要寫一個單元測試,這個單元測試類要去讀和它同目錄的一個XML文件。它的位置如下:
          ConfigFactoryImplTest要去讀取boss-connector-service.xml。

          200609081.jpg

          那么如果得到這個文件呢?先看下面的一個對路徑的測試代碼

          import?java.io.File;
          public?class?PathTest?{
          ??
          public?static?void?main(String[]?args)?throws?Exception?{
          ????System.out.println(
          ????Thread.currentThread().getContextClassLoader().getResource(
          ""));
          ????System.out.println(PathTest.
          class.getClassLoader().getResource(""));
          ????System.out.println(ClassLoader.getSystemResource(
          ""));
          ????System.out.println(PathTest.
          class.getResource(""));
          ????System.out.println(PathTest.
          class.getResource("/"));
          ????System.out.println(
          new?File("").getAbsolutePath());
          ????System.out.println(System.getProperty(
          "user.dir"));
          ??}
          }


          打印各種路徑結果如下:
          file:/E:/wxxr_projects2/wxxr-applications/wxxr-boss-connector/target/test-classes/
          file:
          /E:/wxxr_projects2/wxxr-applications/wxxr-boss-connector/target/test-classes/
          file:
          /E:/wxxr_projects2/wxxr-applications/wxxr-boss-connector/target/test-classes/
          file:
          /E:/wxxr_projects2/wxxr-applications/wxxr-boss-connector/target/test-classes/com/wxxr/boss/config/
          file:
          /E:/wxxr_projects2/wxxr-applications/wxxr-boss-connector/target/test-classes/
          E:\wxxr_projects2\wxxr
          -applications\wxxr-boss-connector
          E:\wxxr_projects2\wxxr
          -applications\wxxr-boss-connector


          發現PathTest.class.getResource("")得到了絕對路徑,嗯,就它了。于是將ConfigFactoryImplTest類里的代碼書寫如下(這里是用DOM來讀XML):

          ????private?static?Element?getRootElement()?throws?Exception?{
          ????????DocumentBuilderFactory?dbf?=?DocumentBuilderFactory.newInstance();
          ????????DocumentBuilder?db?
          =?dbf.newDocumentBuilder();
          ????????Document?doc?
          =?db.parse(ConfigFactoryImplTest.class.getResource("")?+?"boss-connector-service.xml");
          ????????
          return?doc.getDocumentElement();
          ????}


          后記:
          得到資源文件的路徑,在不同的環境(如:Eclipse RCP、Tomcat、Weblogic、簡單的Java Application),方法都是略有不同的。具體的環境要具體分析。

          posted on 2006-09-08 18:54 陳剛 閱讀(1846) 評論(3)  編輯  收藏 所屬分類: Java

          評論

          # re: JAVA Appliation下取得資源文件的路徑  回復  更多評論   

          這個方法的思想很好,比我以前的方法強多了
          2006-09-19 13:56 | 未名常客

          # re: JAVA Appliation下取得資源文件的路徑  回復  更多評論   

          Thank you
          2006-11-27 11:33 | spark[匿名]

          # re: JAVA Appliation下取得資源文件的路徑  回復  更多評論   

          Document doc = db.parse(ConfigFactoryImplTest.class.getResource("") + "boss-connector-service.xml");

          改成這樣不就行了

          Document doc = db.parse(ConfigFactoryImplTest.class.getResource("boss-connector-service.xml") );
          2008-04-10 22:42 | gembin
          主站蜘蛛池模板: 广宁县| 德安县| 黄浦区| 增城市| 长沙市| 望江县| 浙江省| 越西县| 长子县| 龙山县| 巫山县| 大名县| 都昌县| 博爱县| 镇远县| 山阳县| 壶关县| 临汾市| 灌南县| 临海市| 安福县| 龙江县| 兴化市| 大石桥市| 竹北市| 台湾省| 青海省| 乐至县| 商城县| 无为县| 凉城县| 景谷| 利津县| 永靖县| 克东县| 黔江区| 巴青县| 梨树县| 安达市| 玉山县| 商丘市|