子在川上曰

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

          導航

          隨筆分類(72)

          搜索

          •  

          積分與排名

          • 積分 - 591515
          • 排名 - 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 陳剛 閱讀(1841) 評論(3)  編輯  收藏 所屬分類: Java

          評論

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

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

          # 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
          主站蜘蛛池模板: 沁阳市| 沧州市| 金乡县| 公主岭市| 龙山县| 晋江市| 道真| 电白县| 梅河口市| 北海市| 朝阳市| 鹰潭市| 大悟县| 江川县| 太谷县| 嵊泗县| 绵阳市| 修文县| 汝南县| 灵璧县| 湖口县| 盐山县| 阿图什市| 永安市| 澎湖县| 册亨县| 威海市| 贡山| 潞城市| 元阳县| 湖南省| 忻州市| 南和县| 胶州市| 岚皋县| 齐齐哈尔市| 正安县| 屯门区| 卓资县| 大连市| 长泰县|