2013-10-21 214 views
1

我在Netbeans 7.4(Windows 7 64bit)中構建一個JSF 2.2項目,我的一個bean需要使用位於目錄"/NetBeansProjects/projectName/web/WEB-INF/file.properties"的屬性文件,而需要它的bean位於"/NetBeansProjects/projectName/src/java/packageName/bean.java"上。如果我使用絕對路徑,所有東西都像魅力一樣,但是當我嘗試使用相對路徑時,它找不到文件。我試圖使用"../../../web/WEB-INF/file.properties"的所有可能的變體,但它不起作用。我該怎麼辦?Java文件相對路徑

回答

1

使用ExternalContext.getResourceAsStream()通過上下文的相對路徑

這應該工作:

Properties prop = new Properties(); 
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext(); 
prop.load(externalContext.getResourceAsStream("/WEB-INF/file.properties")); 
+0

當我嘗試而準確地複製你所寫的內容沒有找到類「的ExternalContext」所以,當我使用「ExternalContext」我仍然有問題,因爲它不是一個靜態方法。然後,當我嘗試使用「新的ExternalContext」時,無法找到該方法,因爲它是一個抽象類。我正在使用JEE 7. –

+0

@SpyrosNonServiam答案已更新! – fareed

+0

@SpyrosNonServiam當然,你需要趕上/拋出'IOException' – fareed