Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从.jar文件运行时,无法在Java Swing中加载映像_Java_Image_Swing_Jar_Classpath - Fatal编程技术网

从.jar文件运行时,无法在Java Swing中加载映像

从.jar文件运行时,无法在Java Swing中加载映像,java,image,swing,jar,classpath,Java,Image,Swing,Jar,Classpath,我可以从Eclipse运行Java Swing应用程序,不会出现问题。但是当我从.jar文件运行它时,图像无法加载 我用以下内容加载图像: setIconImage(Toolkit.getDefaultToolkit(). getImage(getClass().getResource("../images/logo.png"))); 如何加载图像,使它们即使在从.jar文件运行时也能正常工作 图像在相同的Jar文件中,在包com.example.images中,它们使用的类在com.exam

我可以从Eclipse运行Java Swing应用程序,不会出现问题。但是当我从.jar文件运行它时,图像无法加载

我用以下内容加载图像:

setIconImage(Toolkit.getDefaultToolkit().
getImage(getClass().getResource("../images/logo.png")));
如何加载图像,使它们即使在从.jar文件运行时也能正常工作


图像在相同的Jar文件中,在包
com.example.images
中,它们使用的类在
com.example.gui.dialogs

中。图像也应该打包在Jar文件中。事实上,我不是100%确定没有其他解决方案,但至少在试验相同问题时,我这样做了

然后jar被添加到类路径中,我通过以下方式访问图像资源:


getResource(“images/logo.png”)

使用jar中的绝对路径。如果你不知道,试着用zip程序打开JAR,例如7zip。然后使用绝对路径:

getClass().getResource("/com/examples/images/logo.png")

显然,只有当你的图像在罐子里时,这才有效。如果不是,但是在您的类路径中,这也可以

你可以打赌问题在于你给它的路径。首先,最好使用绝对路径,而不是相对路径。第二,确保路径完全正确,包括小写/大写,因为尽管Windows文件系统不区分大小写,“JAR文件系统”区分大小写。@Jonas-确保将其文件夹正确添加到类路径。