Java 读取属性文件时出现空指针异常
我真的不知道还能做什么。我通常把我的属性文件放在我的源文件夹中(顺便说一下,我使用Netbeans),当我阅读它时,一切正常 今天,我在源文件夹中创建了一个新的属性文件,并尝试读取它,但我不断得到一个空指针异常,这意味着源文件夹中不存在该文件。然而,在所述源文件夹中还有另一个属性文件,我能够很好地阅读该文件。我删除了两个属性文件并重新开始,但这次我似乎什么都看不懂 我的代码很好:Java 读取属性文件时出现空指针异常,java,netbeans,Java,Netbeans,我真的不知道还能做什么。我通常把我的属性文件放在我的源文件夹中(顺便说一下,我使用Netbeans),当我阅读它时,一切正常 今天,我在源文件夹中创建了一个新的属性文件,并尝试读取它,但我不断得到一个空指针异常,这意味着源文件夹中不存在该文件。然而,在所述源文件夹中还有另一个属性文件,我能够很好地阅读该文件。我删除了两个属性文件并重新开始,但这次我似乎什么都看不懂 我的代码很好: Properties pp = new Properties(); pp.load(
Properties pp = new Properties();
pp.load(getClass().getResourceAsStream("/errors.properties"));
然后我为我的项目进行了清理和构建,现在其中一个类可以读取errors.properties文件(相同的代码,没有任何更改),但我现在在尝试运行第二个类时,也得到了一个java.lang.NoClassDefFoundError
啊 试试这个:
Properties pp = new Properties();
InputStream is = getClass().getClassLoader().getResourceAsStream("errors.properties");
pp.load(is);
顺便说一句,这不是NetBeans中的一个bug
如果您使用getClass().getResourceAsStream(“errors.properties”)
您的error.properties
必须位于类所在的位置
注意:我使用的InputStream是
,只是因为否则行太长了。当然,您可以将两行放在一行中。试试以下方法:
Properties pp = new Properties();
InputStream is = getClass().getClassLoader().getResourceAsStream("errors.properties");
pp.load(is);
顺便说一句,这不是NetBeans中的一个bug
如果您使用getClass().getResourceAsStream(“errors.properties”)
您的error.properties
必须位于类所在的位置
注意:我使用的
InputStream是
,只是因为否则行太长了。当然,您可以将这两行放在一行。您的属性文件是否被复制到.class文件所在的build/classes
或target
?我对netbeans 7.2没有任何问题。获取NoClassDefFoundError意味着您缺少一个库。您的属性文件是否被复制到.class文件所在的build/classes
或target
?我对netbeans 7.2没有任何问题。获取NoClassDefFoundError意味着您缺少一个库。getClass().getResourceAsStream()
第一次尝试执行getClass().getClassLoader().getResourceAsStream()
。如果失败,那么它将尝试从ClassLoader.getCallerClassLoader()
获取ClassLoader
。这是唯一的区别。getClass().getResourceAsStream()
第一次尝试执行getClass().getClassLoader().getResourceAsStream()
。如果失败,那么它将尝试从ClassLoader.getCallerClassLoader()
获取ClassLoader
。这是唯一的区别。