Java 如何访问src文件夹中包中的.gif文件?

Java 如何访问src文件夹中包中的.gif文件?,java,package,gif,src,Java,Package,Gif,Src,我正在使用Eclipse开发一个Java程序。现在,我有一个src文件夹,其中包含两个包:memory.views和memory.resources 在memory.views包中,我有Main.java文件。在memory.resources包中,我有.txt文件和.gif文件 在程序中,我可以使用路径/memory/resources/name.txt访问(和操作).txt文件。但是,当我使用下面的代码对.gif文件执行相同操作时,没有得到任何结果: ImageIcon icon = new

我正在使用Eclipse开发一个Java程序。现在,我有一个src文件夹,其中包含两个包:memory.views和memory.resources

在memory.views包中,我有
Main.java
文件。在memory.resources包中,我有.txt文件和.gif文件

在程序中,我可以使用路径
/memory/resources/name.txt
访问(和操作)
.txt
文件。但是,当我使用下面的代码对
.gif
文件执行相同操作时,没有得到任何结果:

ImageIcon icon = new ImageIcon("/memory/resources/name.gif");
没有产生错误。唯一的效果是,当程序运行时,我看不到任何图像

我也试着写了以下内容,但都没有成功:

ImageIcon icon = new ImageIcon("/resources/name.gif"); <br>
ImageIcon icon = new ImageIcon("name.gif");
但是,我不想执行完整路径,因为如果我导出程序并在另一台计算机上运行它,那么非编程计算机也不会显示图像

所以,现在,我甚至不知道问题出在哪里。.gif文件有时可以工作,但如果通过与.txt文件相同的路径访问它,则无法工作,而.txt文件一直都可以工作。我试着看这里(),但似乎他和我有一个稍微不同的问题。

你可以使用

URL url = ClassLoader.getSystemResource("name.gif");
ImageIcon icon = new ImageIcon(url);

假设编译/构建后,
name.gif
文件在类路径中结束。

这个ImageIcon类是什么?这是你自己的代码吗

尝试
Thread.currentThread().getContextClassLoader().getResourceAsStream(“/memory/resources/name.gif”)

查看此操作是否有效

File File=new文件(“/memory/resources/name.gif”)

ImageIcon-icon=新的ImageIcon(file.getAbsolutePath())

谢谢你,deviprasad742。我试过了,但没用。但它没有返回错误,只是没有显示图像。谢谢你,布山·班加莱。ImageIcon不是我自己的类,我在某处找到了一个例子(我现在忘了)。关于你的代码,我在理解上有点困难——主要是因为缺乏上下文。我不知道该把它插在哪里。谢谢你,维塔利。我试过这个,但也没用。它给了我一个java.lang.NullPointerException错误。好的,我猜您的类路径指向根/而您的gif无法找到,因为它在“/memory/resources/”子目录中<代码>ClassLoader.getSystemResource(“/memory/resources/name.gif”)
应该是有效的我最近刚刚找到了这个问题的答案(部分是因为我在这里读到了:)。我所做的是“ImageIcon=newImageIcon(Main.class.getResource(“/memory/resources/name.gif”);”。:)现在唯一要做的就是在另一台计算机上测试它。谢谢大家的帮助!我非常感激。
URL url = ClassLoader.getSystemResource("name.gif");
ImageIcon icon = new ImageIcon(url);