导入文件时避免使用完整文件路径

时间:2015-05-12 04:26:50

标签: java embedded-resource

尝试将图像读入java,目前我要做的是:

Image img = new Image("file:E:/Javaworkspace/Project/src/resource/image.png");

但是,我不是唯一一个在该项目上工作的人,这条路径只适用于我的机器。我确实试过了

Image img = new Image("file:/resource/image.png")

但这会导致FileNotFound。我不知道这个东西用英语叫什么,我希望你能理解我在这里要传达的东西。

编辑:

我现在通过Build Path添加了文件夹“resource”,我正在尝试获取输入流:

ImageView imgView = new ImageView(new Image(this.getClass().getResourceAsStream("/resource/image.png")));

毋庸置疑,我得到一个NullPointerException,根据文档,当路径不存在时会发生。在通过Build Path专门创建它之后它怎么能不存在,它存在于CLASSPATH中。 (是的,文件也在那里,或者我不能简单地将其复制到文件夹中?)

2 个答案:

答案 0 :(得分:2)

将图像放在项目文件夹中,而不是使用文件系统来访问文件。然后你可以使用它:

Image image = ImageIO.read(getClass().getResourceAsStream("/resource/image.png"));

获取任何人要求的图像文件。

答案 1 :(得分:0)

我相信您可以随时尝试使用user.home,但如果有人更新图片或添加图片,则不会为您更新。

Image img = this.getClass().getResource("/resource/image.png");

可能搞乱了括号

还要确保右侧文件夹中有“资源”文件夹(很可能是同一文件夹src和out在

中)