这真让我抓狂。我已经花了几个小时在谷歌上搜索这个,但找不到其他有此问题的人的案例。我已将程序所需的所有图像放入 src 文件夹中,但是当我运行程序时,它不会绘制图像。我检查了 bin 文件夹,它们已被正确复制。即使 bin 文件夹中有所有资源,当我使用相对文件路径时,eclipse 也无法识别它们。如果我打开命令提示符并 cd 到 bin 文件夹并运行它,则会绘制所有图像,而不会更改代码。如何让 eclipse 通过相对文件路径使用图像?
2 回答
Copy images
它应该适合你,默认情况下,只需指定其名称并将其视为相对路径,它将root folder
在其中读取。eclipse中通常用来存放java编译后的所有文件的文件夹,这应该是避免的原因,您可以将文件的相对路径添加到源代码中,并带有单独的文件夹。project
eclipse
file
project
Bin
class files
如果我穿了,请纠正我
当您尝试使用 访问文件new File("some/relative/path")
时,路径始终相对于 Java 应用程序的启动位置。当您不确定这是哪个位置时,您可以通过打印来查找new File(".").getAbsolutePath()
。对于 Eclipse,这将是 Project 文件夹。
如果您想访问应用程序源文件夹中的文件,您应该使用class.getResource("path")
或class.getResourceAsStream("path")
。在这里,路径可以是相对路径(相对于 的包class
)或绝对路径(绝对是类路径)。
因此,如果您有一个包foo
并且在此包中包含一个 java 文件Bar.java
和一个图像blub.gif
,您可以通过使用Bar.class.getResource("blub.gif")
或Bar.class.getResource("/foo/blub.gif")
- 注意前导来获取图像/
。
除了 using 之外new File(...)
,这也将起作用,然后将类和资源打包在 Jar 中。