读取属性文件时获取空指针

时间:2013-08-30 02:28:22

标签: java properties

在阅读属性文件时,我得到nullpointer例外。

faceConfig.load(ReadPropertyFile.class.getClassLoader().getResourceAsStream("/resources/faces.properties"));

下面是属性文件facedetections/src/main/resources/faces.properties

的路径

我尝试使用不同的组合作为我的类文件,该文件位于路径/facedetections/src/main/java/com/facial/facedetection/utils/ReadPropertyFile.java

下面

组合为../../../../../resource/faces.properties/resource/faces.properties

../../../resource/faces.properties

请建议我能为此提供的正确路径。

修改: 我提取了war文件并在下面提供了它的路径。 war extraction

3 个答案:

答案 0 :(得分:2)

在类文件夹下查找属性文件而不是资源。 因为你的屏幕截图找不到类文件夹下的资源文件夹。

所以只需使用

 ReadPropertyFile.class.getClassLoader().getResourceAsStream("faces.properties")

答案 1 :(得分:0)

路径相对于对象(.class)文件所在的点。您确定已配置构建/测试工具以将资源文件复制到该结构中吗?究竟在哪里?这才重要,而不是消息来源的位置。

此外,我的理解是大多数getResourceAsStream()的{​​{1}}不支持ClassLoaders符号。

资源文件当前所在的位置超出..的范围。如果您将文件移至ClassLoader,则可以使用当前代码

/facedetections/src/main/java/resources/faces.properties

我在假设您的环境。特别是,这完全取决于类加载器。如果这没有帮助,请提供对象文件位置,而不是来源(除非它是相同的,但说明它)。

答案 2 :(得分:0)

由于在找不到文件时不太可能获得NPE,因此当您执行该行时,我认为faceConfignull