0

读取属性文件时,我得到了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文件并在下面提供了它的路径。 战争提取

4

3 回答 3

2

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

所以只需使用

 ReadPropertyFile.class.getClassLoader().getResourceAsStream("faces.properties")
于 2013-08-30T05:12:15.770 回答
0

由于在找不到文件时不太可能获得 NPE,我假设那faceConfignull您执行该行的时候。

于 2013-08-30T05:01:53.217 回答
0

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

另外,我的理解是getResourceAsStream()大多数ClassLoaders不支持..符号。

您的资源文件当前所在的位置超出了ClassLoader. 如果您将文件移动到/facedetections/src/main/java/resources/faces.properties,那么您将能够使用当前代码

getResourceAsStream("resources/faces.properties")

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

于 2013-08-30T02:42:09.937 回答