将java文件导出为runnable.jar

将java文件导出为runnable.jar,java,eclipse,image,user-interface,jar,Java,Eclipse,Image,User Interface,Jar,我正在尝试使用Eclipse将java文件导出为可运行的.jar文件。我正在做的程序是: File>Export>Java>Runnable.jar,我的选项如下: 我的问题是,当我在Eclipse中运行该文件时,任何导入的图片(例如GUI应用程序的徽标)都会显示出来,但它不会显示在导出的.jar文件中 即: -月食中 -运行.jar文件 我的图像位于名为filesrc的文件夹中,该文件夹与我的项目位于同一文件夹中,如下所示: 我做错了什么?如何使这些图像显示在.jar中 谢谢确保导出的.j

我正在尝试使用Eclipse将java文件导出为可运行的.jar文件。我正在做的程序是:

File>Export>Java>Runnable.jar,我的选项如下:

我的问题是,当我在Eclipse中运行该文件时,任何导入的图片(例如GUI应用程序的徽标)都会显示出来,但它不会显示在导出的.jar文件中

即:

-月食中 -运行.jar文件

我的图像位于名为filesrc的文件夹中,该文件夹与我的项目位于同一文件夹中,如下所示:

我做错了什么?如何使这些图像显示在.jar中


谢谢

确保导出的
.jar
文件包含包含图像的文件夹。因此,让我们假设您的图像位于JAR文件根目录下名为\images的文件夹中。 在代码中,您需要更改获取这些图像的方式:
Toolkit.getDefaultToolkit().getImage(getClass().getResource(“/images/plus.png”)

确保导出的
.jar
文件包含包含图像的文件夹。因此,让我们假设您的图像位于JAR文件根目录下名为\images的文件夹中。 在代码中,您需要更改获取这些图像的方式:

Toolkit.getDefaultToolkit().getImage(getClass().getResource(“/images/plus.png”)

Jar文件是一个zip文件,您可以解压缩以检查是否包含图像。我的猜测是,您没有使用
Class#getResource
加载图像,而是将它们视为普通文件(并在路径引用中使用
src
code-imgLabel=new-JLabel(new-ImageIcon(“filesrc//mainlogo.png”);activityLevelHelp=newjlabel(新的图像图标(“filesrc//问号.png”)我就是这么说的。我认为我没有使用类#getResource加载图像。我该怎么做呢?当我解压文件时,mainlogo.png就在那里,但我也有很多其他无用的文件,比如同一个项目中的不同.java文件。这正常吗?如果我只想导出某个包和filesrc文件夹,该怎么办?
filesrc
是否复制到jar文件中?如果没有,是否使用.jar文件复制
filesrc
?.jar文件中的
mainlogo.png
位于何处?它是否在
filesrc
目录中
ImageIcon(String)
期望
String
表示磁盘上的文件,当文件包含在.jar文件中时,它们不再是“文件”不,我不相信filesrc被复制到jar文件中,因为解压时它不在那里(这是我检查的方式)。据我所知,第二个问题也是否定的。这是我第一次创建runnable.jar,所以我很有可能做错了什么。这将归结为Eclipse是如何将内容捆绑在一起的,从外观上看,它将项目目录下的所有内容包括这些目录的内容,但不是目录本身。Jar文件是一个zip文件,您可以解压缩以检查是否包含图像。我的猜测是,您没有使用
Class#getResource
加载图像,而是将它们视为普通文件(并在路径引用中使用
src
code-imgLabel=new-JLabel(new-ImageIcon(“filesrc//mainlogo.png”);activityLevelHelp=newjlabel(新的图像图标(“filesrc//问号.png”)我就是这么说的。我认为我没有使用类#getResource加载图像。我该怎么做呢?当我解压文件时,mainlogo.png就在那里,但我也有很多其他无用的文件,比如同一个项目中的不同.java文件。这正常吗?如果我只想导出某个包和filesrc文件夹,该怎么办?
filesrc
是否复制到jar文件中?如果没有,是否使用.jar文件复制
filesrc
?.jar文件中的
mainlogo.png
位于何处?它是否在
filesrc
目录中
ImageIcon(String)
期望
String
表示磁盘上的文件,当文件包含在.jar文件中时,它们不再是“文件”不,我不相信filesrc被复制到jar文件中,因为解压时它不在那里(这是我检查的方式)。据我所知,第二个问题也是否定的。这是我第一次创建runnable.jar,所以我很有可能做错了什么。这将归结为Eclipse如何将内容捆绑在一起,从外观上看,它将所有内容都放在项目目录下,包括这些目录的内容,但不是目录本身,我们都应该停止使用
Toolkit.getImage
ImageIcon
,因为它们将图像的物理加载卸载到后台,并且在图像加载失败时不提供任何反馈(不需要更多的代码),只支持有限的文件格式子集
ImageIO
是一个更好的API,只是对这个愚蠢的问题表示遗憾-我的JAR文件的根只是src文件夹吗?@Ftahir192不一定,它将取决于JAR的生成方式,可能包括其他资源。我刚刚发现这是一个重复的问题。检查:在那里尝试了所有东西,但似乎没有任何效果。唉……就个人而言,我们都应该停止使用
Toolkit.getImage
ImageIcon
,因为它们将图像的物理加载卸载到后台,并且在图像加载失败时不提供任何反馈(无需更多代码),并且只支持有限的文件格式子集
ImageIO
就个人而言是一个更好的API,只是对这个愚蠢的问题表示遗憾——我的JAR文件的根只是src文件夹吗?@Ftahir192不一定,它将取决于JAR的生成方式,可能包括其他resourcesHey@Ft