Java 构建时未将资源映像包括到jar中

Java 构建时未将资源映像包括到jar中,java,image,jar,embedded-resource,Java,Image,Jar,Embedded Resource,我目前正在使用以下代码段来获取接口的图像 ImageIcon img = new ImageIcon("./lib/logo.gif"); JLabel lblNewLabel = new JLabel(""); lblNewLabel.setIcon(img); lblNewLabel.setBounds(28, 65, 140, 100); 但是,当我执行clean和build时,当我执行jar文件时,图像不会出现。出现了什么问题?应该将图像文件放在哪里?提前感谢。在您提供的代码片段中,

我目前正在使用以下代码段来获取接口的图像

ImageIcon img = new ImageIcon("./lib/logo.gif");

JLabel lblNewLabel = new JLabel("");
lblNewLabel.setIcon(img);
lblNewLabel.setBounds(28, 65, 140, 100);

但是,当我执行clean和build时,当我执行jar文件时,图像不会出现。出现了什么问题?应该将图像文件放在哪里?提前感谢。

在您提供的代码片段中,映像文件的路径被认为位于文件系统上(类的构造函数将文件名作为参数)。如果要从jar本身加载文件(或图像),则需要使用。检查问题

“但是,当我执行clean and build时,当我执行jar文件时,图像不会出现。出现了什么问题?应该将图像文件放在哪里?”

这就是您不从文件加载的原因。您希望将其作为一个URL从类路径加载

在开发过程中,您的图像应该位于
src
中的某个包中。构建时,IDE会将该映像复制到类路径中,并将其添加到jar中

然后从代码中的类路径加载

Class.getResource(…)
返回一个URL,所以您希望这样做

ImageIcon icon = new ImageIcon(MyClass.class.getResource("/images/logo.gif"));

很抱歉问这样的问题,但是Myclass和class代表什么?这样我就可以修改你的类,它有ImageIcon的代码
.class
只是指
class
对象
MyClass
,其中
MyClass
是代码所在的类
ImageIcon icon=new ImageIcon(..)
无论您的类名是什么,只要用它替换
MyClass