在Springs框架之外运行gradle测试时无法找到属性文件

时间:2015-02-16 20:25:07

标签: java gradle

我尝试从基于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动态的)或在资源文件夹中?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

使用代码Config.class.getResourceAsStream("config.properties");,您正在查找与您的类相同的包中的资源config.properties。给Class.getResourceAsStream(name)的路径是相对于包层次结构中类的位置。

如果您将资源放在src/test/resources下,那么它将以最终jar的根目录结束,因此您可以使用绝对路径在/config.properties查找它。