尝试使用其中的资源创建可执行文件.jar。快速提问: 为什么我会为此代码获取NullPointerException?
String filename = "/settings.xml"
try (InputStream is = this.getClass().getResourceAsStream(filename);
BufferedReader reader = new BufferedReader(new InputStreamReader(is));)
{
settingArray = (boolean[]) xStream.fromXML(reader);
}
我使用Eclipse,文件settings.xml位于我项目的根目录中。以下代码可以很好地工作,但是在导出到jar之后却没有:
try (final BufferedReader reader = new BufferedReader(new FileReader(filename)))
{
settingArray = (boolean[]) xStream.fromXML(reader);
}
答案 0 :(得分:2)
要使用this.getClass().getResourceAsStream("/settings.xml")
加载,该文件不得位于项目的根目录。在运行时,Java不知道并关心包含应用程序源的eclipse项目。
它关心的是运行时类路径。该文件必须位于类路径的根目录中。要在那里,文件应该是