我尝试从基于Gradle的项目中的Java类加载配置文件。我使用java.util.Properties来加载相对于项目的文件(所以我不需要硬编码配置文件的路径)。
我看了一个几乎确切的问题, Can't find properties file when running gradle test但是,我没有使用Springs框架,因此答案看起来非常不同。
我目前的代码如下:
String filename = "config.properties";
input = Config.class.getResourceAsStream(filename);
if (input == null) {
throw new FileNotFoundException("config " + filename + " not found");
}
我已将配置文件放在项目的每个文件夹中。我使用了默认的gradle资源文件夹src / test / resources,但没有运气。
是否应将配置文件放在.java文件,.class文件附近(可能不会发生因为.class输出是从gradle动态的)或在资源文件夹中?
感谢您的帮助!
答案 0 :(得分:0)
使用代码Config.class.getResourceAsStream("config.properties");
,您正在查找与您的类相同的包中的资源config.properties
。给Class.getResourceAsStream(name)
的路径是相对于包层次结构中类的位置。
如果您将资源放在src/test/resources
下,那么它将以最终jar的根目录结束,因此您可以使用绝对路径在/config.properties
查找它。