eclipse无法识别bin文件夹中的资源(通过相对文件路径)

时间:2012-11-01 04:41:59

标签: java eclipse

这让我发疯了。我花了几个小时在谷歌搜索,并找不到有这个问题的人的另一个案例。我已将我所需的所有图像放入src文件夹,但是当我运行程序时,它不会绘制图像。我检查了bin文件夹,它们已被正确复制。即使使用bin文件夹中的所有资源,当我使用相对文件路径时,eclipse也无法识别它们。如果我打开命令提示符并cd到bin文件夹并运行它,则会绘制所有图像,而不会更改代码。我怎样才能让eclipse通过相对文件路径来使用图像?

2 个答案:

答案 0 :(得分:0)

Copy images root folder project eclipse它应该适用于您,默认情况下,file会读取project中的Bin通过简单地指定其名称并将其视为相对路径。 class files文件夹通常用于在eclipse中编译java文件后存储所有{{1}},这应该是避免的原因,你可以将文件的相对路径添加到源代码中,并使用其单独的folers

如果你好了,请纠正我

答案 1 :(得分:0)

当您尝试使用new File("some/relative/path")访问文件时,路径始终相对于Java应用程序的启动位置。当您不确定这是哪个位置时,您可以通过打印new File(".").getAbsolutePath()找到答案。对于Eclipse,这将是Project文件夹。

如果要访问应用程序的源文件夹中的文件,则应使用class.getResource("path")class.getResourceAsStream("path")。这里,path可以是相对路径(相对于class的包)或绝对路径(绝对w.r.t.类路径)。

因此,如果你有一个包foo并且在这个包中有一个java文件Bar.java和一个图像blub.gif,你可以使用Bar.class.getResource("blub.gif")或{来获取图像{1}} - 请注意前导Bar.class.getResource("/foo/blub.gif")

除了使用/之外,这也适用于将类和资源打包在Jar中。