子在川上曰

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

          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


          發(fā)現(xiàn)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();
          ????}


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

          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
          主站蜘蛛池模板: 平利县| 关岭| 什邡市| 托克逊县| 汕头市| 会同县| 长岭县| 三门县| 隆回县| 富锦市| 梁平县| 西畴县| 澄城县| 囊谦县| 宁河县| 高碑店市| 鄢陵县| 封开县| 海盐县| 仙游县| 乌拉特后旗| 武隆县| 安吉县| 祁门县| 民勤县| 筠连县| 商都县| 共和县| 朝阳县| 阳春市| 东丽区| 永新县| 门源| 博兴县| 扶风县| 孙吴县| 永兴县| 临夏市| 奈曼旗| 伊金霍洛旗| 监利县|