繁体   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