【发布时间】:2014-12-24 03:15:26
【问题描述】:
我有一个db.properties.txt 文件和我的包com.noteu
在与文件相同的包中,我试图将它加载到数据库类中属性对象的构造函数中,如下所示:
properties.load(Database.class.getResourceAsStream("db.properties.txt"));
但是我得到一个java.lang.NullPointerException 如下:
Exception in thread "main" java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Unknown Source)
at java.util.Properties.load0(Unknown Source)
at java.util.Properties.load(Unknown Source)
at com.noteu.Database.get(Database.java:24)
at com.noteu.menus.Signin.checkSignedInStatus(Signin.java:52)
at com.noteu.menus.Signin.<init>(Signin.java:253)
at com.noteu.Main.main(Main.java:33)
【问题讨论】:
-
考虑使用路径“/com/noteu/db.properties.txt”(或“com/noteu/db.properties.txt”,我通常在遇到问题时都尝试)。如果属性文件与数据库类存在于同一目录中并且您没有使用静态上下文,则可以尝试使用 getClass().getResourceAsStream() 代替(使用相对路径)
-
您是否确认 .jar 文件包含 com/noteu/db.properties.txt 条目?如果不是,则 .jar 的打包方式可能存在问题。
-
用 7zip/WinZip 或其他软件打开 jar(zip 格式),并检查文件是否存在:区分大小写,在包文件夹中。可能是您需要将文件不在 /src/(main/)java 下,而是 /src/main/resources/com/noteu/ 左右。
标签: java properties fileinputstream