如何使用eclipse将图像添加到java项目中?

ct_*_*ct_ 24 java eclipse resources image

我已经围绕SO和谷歌链接做了很多阅读.

我还没弄明白如何正确地将图像添加到eclipse gui项目中,这样系统就能识别它.我知道有一些关于CLASSPATH的mumbojumbo但它可能不应该这么难做.

让我先描述一下我在做什么......(如果有人能够纠正我,那就更感激了.)

这是我的方法.

我使用"导入向导"(右键单击,"导入","常规","文件")将图像添加到"导入目录"中,我称之为"/ resources"

Eclipse在eclipse包资源管理器的树视图中自动创建一个名为"resources"的文件夹.在"参考图书馆"条目下.

注意,"资源"不在"引用的库"下,它在树中处于同一级别.

然后我使用以下代码:

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("/resources/image.jpg");
Image logo = ImageIO.read(input);
Run Code Online (Sandbox Code Playgroud)

此时,我运行测试程序并得到此错误:

Exception in thread "main" java.lang.IllegalArgumentException: input == null!
    at javax.imageio.ImageIO.read(Unknown Source)
    at Test.main(Test.java:17)
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助!

Jef*_*eff 36

将图像放在源文件夹中,而不是常规文件夹中.即:右键单击项目 - >新建 - >源文件夹.将图像放在该源文件夹中.然后:

InputStream input = classLoader.getResourceAsStream("image.jpg");
Run Code Online (Sandbox Code Playgroud)

请注意,路径被省略.那是因为图像直接位于路径的根部.您可以在源文件夹下添加文件夹,以便根据需要进一步细分.或者您可以将图像放在现有的源文件夹下(通常称为src).

  • 我看到这个帖子已经有2年了,但对于通过搜索引擎访问的人来说,我补充一点,如果你从静态方法中运行这段代码,除非你改变输入变量的定义,否则会抛出错误to:InputStream input = LoadImg.class.getClassLoader().getResourceAsStream("hockeypuck.jpg"); (4认同)
  • 同意,OP的原因是,eclipse自动将文件从src目录复制到classes目录.它不会对普通目录执行此操作,以及为什么会出现该错误. (2认同)