子在川上曰

            逝者如斯夫不舍晝夜
          隨筆 - 71, 文章 - 0, 評論 - 915, 引用 - 0
          數據加載中……

          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
          主站蜘蛛池模板: 弥渡县| 阳朔县| 安国市| 建阳市| 新闻| 孝感市| 纳雍县| 北安市| 江永县| 万州区| 安陆市| 方城县| 大庆市| 齐齐哈尔市| 海原县| 平昌县| 衡东县| 卢湾区| 峨边| 大足县| 土默特左旗| 淮南市| 怀柔区| 吐鲁番市| 江门市| 安义县| 林芝县| 温州市| 贵阳市| 建平县| 都匀市| 大同市| 南安市| 镇宁| 乡宁县| 延吉市| 江口县| 民乐县| 旅游| 新宾| 克拉玛依市|