30
在我的Maven項目,我在main方法下面的代碼:Maven項目中資源文件的路徑是什麼?
FileInputStream in = new FileInputStream("database.properties");
,但總是找不到錯誤的文件。
我已經把文件放在src/main/resources中,並且它被正確地複製到了目標/ classes目錄(我相信這是Maven資源的預期行爲),但是在實際運行程序時似乎永遠找不到文件。我試過各種其他路徑:
FileInputStream in = new FileInputStream("./database.properties");
FileInputStream in = new FileInputStream("resources/database.properties");
等,但似乎沒有工作。
那麼,什麼是使用正確的路徑?
基於「不認的」回答以下,這裏是我需要的東西:
InputStream in = TestDB.class.getResourceAsStream("/database.properties")
其中TestDB
是類的名稱。
感謝您的幫助,不要!
如果您嘗試從靜態方法訪問文件,getClass()不起作用。在這種情況下是否有其他選擇? – acarlow 2010-06-24 01:52:34
使用類名稱,例如Main.class.getResourceAsStream()。你可以使用任何類或類加載器,所以hread.getContextClassLoader()。getResourceAsStream()也可以。 – 2010-06-24 07:45:16