【发布时间】:2013-03-20 21:32:49
【问题描述】:
我在我的 java 游戏中加载 XML 文件时遇到问题。这是文件所在的位置,(来自 Eclipse):
我一直在做研究,显然要在JAR文件中使用xml文件,我需要调用
DocumentBuilder.parse(InputStream)
问题是当我尝试使用 getResourceAsStream("res/xml/items.xml") 获取 InputStream
它总是返回 null。
我怎样才能让它不返回null?我不想将我的 res 文件夹放在我的“src”文件夹中,但是我需要在 Eclipse 中设置一些设置吗?路径的正确字符串是什么?谢谢!
编辑:
我的代码:
try {
DocumentBuilder db = dbf.newDocumentBuilder();
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("res/xml/items.xml");
dom = db.parse(is);
} catch(Exception e) {
e.printStackTrace();
}
这仍然给我 null。
【问题讨论】:
-
您需要将“res”设为源文件夹,但这并不能解决您的所有问题。将代码粘贴到您尝试调用
getResourceAsStream()的位置。 -
@parsifal InputStream is = Item.class.getResourceAsStream("res/xml/items.xml");
-
以后,请使用附加信息编辑您的原始问题。评论格式不正确。
-
@parsifal 我编辑了有问题的原始帖子。它仍然不起作用!我尝试将测试文档放入“src”文件夹,然后它可以工作,但是如果我将“res”文件夹设为源文件夹,它永远不会工作......
-
对不起,我给出了快速的答案,没有完整的解释。当您将文件夹创建为 Eclipse 源文件夹时,该文件夹将添加到类路径的根目录中。因此,您无需在任何路径中指定文件夹名称。既然你接受了我的回答,我会假设你已经明白了。无论如何,我都会编辑我的回复,因为它具有误导性。
标签: java xml resources null slick2d