我有一个包含多个模块的Java应用程序,每个模块都有一个jar
文件。
每个 jar 文件都遵循相同的文件夹结构,称为 META-INF/props
java 中是否有一种方法可以使用通配符加载多个 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/