2008-10-09 28 views
17

讓我們假設我的類是從壓縮的.war文件加載的,或者是其他地方加載的, 如何發現給定包中的所有資源?枚舉文件不會真的起作用,因爲這是一個war文件。這很可能涉及使用當前的類加載器?我可以列出給定包中的資源嗎?

在那裏有一個類似的庫嗎?谷歌搜索只顯示一些黑客與上市文件。

回答

5

不,您不能列出包中的資源,因爲JVM根本不知道哪個包中包含哪些資源。見this question

6

Spring框架提供了一個名爲PathMatchingResourcePatternResolver的類。通過這個類,你可以給出具有通配符的Ant樣式路徑,它會爲你找到相關的資源(通過類路徑中的文件夾和罐子搜索)。

21

是的。您可以使用ClassLoader.getResources("");

或者你可以使用白鼬API:
https://www.ohloh.net/p/pureperfect-ferret

該API允許您掃描類路徑,以及使用訪問者模式任意檔案和目錄。

+0

+1正確的解決方案,應該對任何類加載器和web容器工作 – 2013-05-02 11:56:47

3

我這樣做: - 包裝之前,ls myResources/*.ext > myResources/list.txt - 然後只是讀取文件第一

相關問題