2011-05-03 110 views
0

我的項目目錄結構讀WAR文件從src文件夾類

/src 
/model 
/Updatedata.java 

/war 
/vector 
/basicvector.xml 

我用它來從Updatedata類閱讀basicvector.xml

+0

你嘗試過什麼樣的方法? – 2011-05-03 20:29:23

+0

getClass()。getResource(「/」);但它返回的路徑WEB-INF/class/ – 2011-05-03 20:31:17

回答

0

如果你正在寫一個servlet,您可以用

getServletContext().getResourceAsStream("/basicvector.xml")

getServletContext().getResourceAsStream("/vector/basicvector.xml")

(我不能完全從這個問題告訴basicvector.xml是否將.war或文件夾的根叫vector

+0

好的,謝謝馬修 – 2011-05-03 21:33:35

0

的getClass()的getResource( 「/」)的方法。但 返回路徑WEB-INF /班/

這是因爲當你在運行時,WEB-INF /班/文件夾被認爲是CLASSPATH分辨率的當前目錄。對getClass()的調用調用當前類使用的類加載器,並且getResource()要求類加載器查找文件。這就是爲什麼「/」不是驅動器的根目錄,它是類加載器的根目錄/當前目錄。

知道了,您可以使用相對路徑向後導航到您的XML文件的位置。

假設你的代碼的結構如下

/war/vector/basicvector.xml 
/war/WEB-INF/class/ 

那麼你可以使用:

getClass().getResource("/../../vector/basicvector.xml");