Java 读取属性文件时出现空指针异常

Java 读取属性文件时出现空指针异常,java,netbeans,Java,Netbeans,我真的不知道还能做什么。我通常把我的属性文件放在我的源文件夹中(顺便说一下,我使用Netbeans),当我阅读它时,一切正常 今天,我在源文件夹中创建了一个新的属性文件,并尝试读取它,但我不断得到一个空指针异常,这意味着源文件夹中不存在该文件。然而,在所述源文件夹中还有另一个属性文件,我能够很好地阅读该文件。我删除了两个属性文件并重新开始,但这次我似乎什么都看不懂 我的代码很好: Properties pp = new Properties(); pp.load(

我真的不知道还能做什么。我通常把我的属性文件放在我的源文件夹中(顺便说一下,我使用Netbeans),当我阅读它时,一切正常

今天,我在源文件夹中创建了一个新的属性文件,并尝试读取它,但我不断得到一个空指针异常,这意味着源文件夹中不存在该文件。然而,在所述源文件夹中还有另一个属性文件,我能够很好地阅读该文件。我删除了两个属性文件并重新开始,但这次我似乎什么都看不懂

我的代码很好:

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
。这是唯一的区别。