getResourceAsStream()在Eclipse中返回null,但并非总是如此

时间:2013-06-07 22:06:59

标签: java eclipse inputstream

我对此感到非常困惑。我之前一直在努力解决这个问题,但是一旦我弄明白,我就没有任何问题了。但现在,它又出现了。基本上,我有一些代码以图像形式读取文件。但是,只有某些图像是可读的。具体来说,我只能在重构后包含源文件夹中的所有文件(它们之前已经在外面但仍包含在JAR中)之后才能访问已添加到项目文件夹中的图像。我已经设法通过创建问题文件夹的副本,删除原件,然后有效地将副本重命名为与原件相同的名称来修复它,但我仍然很好奇为什么会发生这种情况。有人有想法吗?

1 个答案:

答案 0 :(得分:1)

应该用7zip,Winzip等打开它来验证jar。

在同一个jar中,一个类可以使用带有URL的getResourceAsStream(路径分隔符/,而不是\\)。图像位于同一包或子包路径中时的相对URL。否则为绝对网址"/..."

重要的是路径区分大小写 - 而不是Windows文件名。这可能很棘手,好像文件也在jar之外的类路径上,然后在Windows(但不是Linux)上,错误的情况似乎没问题。