我对此感到非常困惑。我之前一直在努力解决这个问题,但是一旦我弄明白,我就没有任何问题了。但现在,它又出现了。基本上,我有一些代码以图像形式读取文件。但是,只有某些图像是可读的。具体来说,我只能在重构后包含源文件夹中的所有文件(它们之前已经在外面但仍包含在JAR中)之后才能访问已添加到项目文件夹中的图像。我已经设法通过创建问题文件夹的副本,删除原件,然后有效地将副本重命名为与原件相同的名称来修复它,但我仍然很好奇为什么会发生这种情况。有人有想法吗?
答案 0 :(得分:1)
应该用7zip,Winzip等打开它来验证jar。
在同一个jar中,一个类可以使用带有URL的getResourceAsStream
(路径分隔符/
,而不是\\
)。图像位于同一包或子包路径中时的相对URL。否则为绝对网址"/..."
。
重要的是路径区分大小写 - 而不是Windows文件名。这可能很棘手,好像文件也在jar之外的类路径上,然后在Windows(但不是Linux)上,错误的情况似乎没问题。