我有一个 Maven 项目,其中包含文件 src/main/resources/barcoding.properties
。当尝试使用以下代码获取 barcoding.properties 文件时,我不断收到以下代码的空指针:
public class BarcodingProperties{
private static Properties props = null;
private static void getProperties() {
System.out.println("we in getProperties");
props = new Properties();
InputStream in = BarcodingProperties.class.getClass().getClassLoader().getResourceAsStream("barcoding.properties"); <-- This line returns null pointer exception.
System.out.println("in. = "+in.toString());
try {
props.load(in);
} catch (IOException e) {
System.out.println("unable to load properties");
e.printStackTrace();
}
}
}
当我构建项目并查看 jar 文件时,barcoding.properties 存在于项目根目录中。
为什么返回 null 以及如何修复它?
最佳答案
您正在尝试使用 Class
的类加载器来加载资源,而不是像这样的 BarcodingProperties
:
BarcodingProperties.class.getClassLoader().getResourceAsStream("barcoding.properties");
Class
的类加载器为null,表明它是由引导类加载器加载的,参见Stock JDK classes and the "null" ClassLoader?了解更多信息。
关于java - 尝试获取属性文件时出现空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19014387/