java - 使用通配符从多个 jar 加载资源

标签 java jar classloader

我有一个包含多个模块的Java应用程序,每个模块都有一个jar文件。 每个 jar 文件都遵循相同的文件夹结构,称为 META-INF/propsjava 中是否有一种方法可以使用通配符加载多个 jar 的“META-INF/props”中的所有属性文件?

类似

ClassLoader.getSystemResourceAsStream("META-INF/props/*.properties");

我知道这个方法不接受通配符并且不返回流数组,但是可以做这样的事情吗?

最佳答案

不,没有标准/可靠的方法可以做到这一点。一些库利用 ClassLoader.getResources 实现的常见模式(具体来说,它们通常总是返回“file:”或“jar:file:”URL)来支持资源查找中的通配符。例如,Wildcards in application context constructor resource paths解释了 Spring 如何做到这一点,并列出了几个注意事项(“对可移植性的影响”、“Classpath*:可移植性”、“与通配符相关的注释”)。

关于java - 使用通配符从多个 jar 加载资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26050639/

相关文章:

java - @override 注释

java - 从 Hibernate 4.3.1 切换到 5.0.6,Transaction 消失了

java - 避免 PermGen 内存不足和超出 GC 开销限制

java - 在jar包中定位资源

java - 来自 JAR 的线程 "main"java.lang.NoClassDefFoundError 中出现异常

java - Tomcat(没有热部署)可以忽略覆盖的jar吗

java - 应用程序决定jar版本

java - StringBuilder 最有效的初始容量大小?

java - 实现 hibernate-CRUD wia 注释时出现 hbm.xml 未找到错误

java - 尝试为我的 Eclipse 应用程序创建 Junit