我在程序中使用下面的代码加载一个属性文件:
Properties properties = new Properties();
URL url = new App().getClass().getResource(PROPERTIES_FILE);
properties.load(url.openStream());
代码在Eclipse中运行良好。然后我将程序打包成了一个名为MyProgram.jar的JAR文件,并运行它,在第二行代码处遇到了NullPointerException异常。JAR文件不包含属性文件,它们都在同一个目录下。我正在使用Maven创建这个JAR文件。如何解决这个问题?
更新:我不想将属性文件添加到JAR文件中,因为它将在部署时创建。
getResource()
而不是getResourceAsStream()
有什么原因吗?因为你只是在使用流而已。 - Powerlordmaven
标签?你在我的回答上评论说“你知道如何通过maven添加它吗?”所以你正在使用maven,由于它的操作方式不同,最终答案取决于它。我不知道怎么做,所以我删除了答案并重新标记问题以便更好地关注。Maven的人是唯一可以可靠回答这个问题的人。 - BalusC