簡體   English   中英

如何在jar文件中使用ClassLoader.getResources()

[英]How to use ClassLoader.getResources() in jar file

問題陳述:
我在包mycompany/configuration/file/有一個帶有一組配置文件的jar文件。
我不知道文件名。
我的目的是在運行時從打包它們的jar文件中加載文件名,然后在我的應用程序中使用它。
據我所知:當我使用ClassLoader.getResources("mycompany/configuration/file/")我應該將所有配置文件作為URL。
然而,這就是發生的事情:
我得到一個帶URL的URL對象,如jar:file:/C:/myJarName.jar!mycompany/configuration/file/
能不能讓我知道我做錯了什么?

對於你想要做的事情,我認為這是不可能的。

getResourcegetResources是在類加載器的類路徑中查找命名資源,而不是列出目錄或文件夾下的值。

因此,例如ClassLoader.getResources("mycompany/configuration/file/Config.cfg")將返回名為Config.cfg的所有文件,這些文件存在於類加載器的類路徑中的mycompany / configuration / file路徑中(我發現這特別有用)用於個人加載版本信息)。

在你的情況下,我認為你可能幾乎有一半的解決方案。 您獲取的URL包含源jar文件(jar:file:/ C:/myJarName.jar)。 您可以使用此信息來破解打開jar文件,讀取條目列表,過濾名稱以“mycompany / configuration / file /”開頭的條目。

從那里,您可以回退到getResource方法以加載對每個方法的引用(現在您有了名稱和路徑)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM