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

那么如果得到這個文件呢?先看下面的一個對路徑的測試代碼
打印各種路徑結果如下:
發現PathTest.class.getResource("")得到了絕對路徑,嗯,就它了。于是將ConfigFactoryImplTest類里的代碼書寫如下(這里是用DOM來讀XML):
后記:
得到資源文件的路徑,在不同的環境(如:Eclipse RCP、Tomcat、Weblogic、簡單的Java Application),方法都是略有不同的。具體的環境要具體分析。
ConfigFactoryImplTest要去讀取boss-connector-service.xml。

那么如果得到這個文件呢?先看下面的一個對路徑的測試代碼
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"));
??}
}
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
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();
????}
????????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