【发布时间】:2017-07-27 00:54:01
【问题描述】:
如何在路径中指定项目以使用 getResourceAsStream() 访问正确的 .properties 文件?问题是子项目 A 和 B 中的文件夹和文件名相同(因此仅将文件夹/文件指定为路径是行不通的。
有没有类似的解决方案
.getResourceAsStream("/Subproject_B/someFolder/someResourceBundle.properties")?我是否需要实现自己的类加载器并只设置我想在其类路径上搜索的项目/文件夹?在加载 .getResourceAsStream("/someFolder/someResourceBundle.properties") 之类的文件时,这会导致唯一的地址吗?
我们的 Maven 项目如下所示:
SubProject_A
|-src
|-main
|-resources
|-someFolder //folder name is the same as in Subproject_B
|-someResourceBundle.properties
SubProject_B
|-src
|-main
|-resources
|-someFolder //folder name is the same as in Subproject_A
|-someResourceBundle.properties
【问题讨论】:
-
getResource系列方法在类路径中工作,而不是文件系统。所以不要考虑文件夹和文件,要考虑包和资源。类路径应该在类路径中有src/main/resources,因此getResource...()调用访问someResourceBundle.properties的参数将是/someFolder/someResourceBundle.properties。 -
这显示了一个问题,因为如果您将它们命名相同,则意味着属于同一模块或您的分离是错误的......