在阅读属性文件时,我得到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文件并在下面提供了它的路径。
答案 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,因此当您执行该行时,我认为faceConfig
为null
。