2013-02-13 134 views
-6

我在加载图片时出现问题。在命令提示符(运行是主类)中使用Java Run编译后运行应用程序(不会生成错误)会加载图像,但在将其打包到jar文件后,它无法加载图像。打包这些类时,我将图像源与它的类一起打包。我无法加载图像

我这是怎么加载图片:

ImageIcon icon = new ImageIcon(getClass().getResource("resources/images/button6.gif")); 

类和包含图像是在同一目录下的文件夹。

+2

你的大写锁定被阻止... – wrm 2013-02-13 13:51:17

+0

你是否打扰搜索:http://stackoverflow.com/questions/1424547/image-not-loading?rq=1,http://stackoverflow.com/questions/4675617/my-jar-file-wont-load-images?rq = 1,http://stackoverflow.com/questions/4971587/loading-images-from-a-jar-file?rq=1 – 2013-02-13 13:53:44

+0

我试过了,它没有工作。 – Cocest 2013-02-13 14:00:21

回答

0

在JAR中打包是不同的。

尝试创建清单并向其添加Class Path条目。列出图像存在的相对于JAR根的路径,看看是否有帮助。

+0

我会尝试。 – Cocest 2013-02-13 13:59:33

0

尝试:

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

原因:

  • 相对路径在包中的类的开始,但你可能想在罐的根级开始(假设“资源”是一个在JAR顶级目录)

http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getResource%28java.lang.String%29

+0

谢谢普斯,我会尽力的。 – Cocest 2013-02-13 15:29:32

+0

普斯,我尝试它没有工作的例子。 – Cocest 2013-02-13 16:56:36

+0

如果你打开你的jar(例如用zip工具或用jar工具解压jar),它看起来像什么? button6.gif的路径是什么?罐子的gif部分? – Puce 2013-02-13 17:00:28

-1

我试图加载的图像是一个gif图像格式,其中文件扩展名gif是大写字母(即, .GIF)。我将图像扩展名更改为小写,并解决了问题。