子在川上曰

            逝者如斯夫不舍晝夜
          隨筆 - 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 陳剛 閱讀(1840) 評論(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
          主站蜘蛛池模板: 永兴县| 青川县| 滦南县| 德化县| 蛟河市| 息烽县| 临汾市| 山东省| 鹤山市| 兴隆县| 正镶白旗| 苍溪县| 桃园市| 崇文区| 泰顺县| 大丰市| 将乐县| 泰和县| 永福县| 无棣县| 郑州市| 安吉县| 文水县| 镇安县| 孝昌县| 敦化市| 巩义市| 清水河县| 康保县| 绵阳市| 巴林右旗| 滨海县| 嘉黎县| 镇赉县| 兴山县| 霍城县| 五寨县| 辽宁省| 潜江市| 醴陵市| 化州市|