1
我不喜歡在resources/mypackage/.../somepackage/resourcefile.properties
中擁有我的屬性文件,寧願讓它們在resources/resourcefile.properties
。這個現象的原因可能不:訪問Java中基礎包的資源?
- 被迫寫
MyApplication.class.getResourceAsStream("../../../../../../../../resources/resourcefile.properties")
或 - 它使用
SomeClass.getClassLoader().getResourceAsStream("resourcefile.properties")
時在Tomcat中不工作?
你肯定的作品?我認爲每個虛擬機只有一個類加載器,因此Tomcat沒有以root用戶爲基礎的軟件包目錄,而是有一些不同的目錄。 –
'Class.getResourceAsStream()'從類路徑加載資源,而不是文件系統。雖然分層類加載器可能強制實現可見性約束(即,您可以從您自己的軟件包或任何父母中查看資源,但是不能從兄弟軟件包中查看資源),但類路徑上的所有軟件包名稱都共享同一個根目錄。 – Barend