如何使jar运行以保存图像

时间:2015-03-10 21:42:40

标签: java

我有一个问题: 我将我的图像放在项目文件夹中,例如E:\ All Work IT \ Java All \ JavaWork \ TestingDB,当我使用这行代码来使用图像时

ImageIcon icon = new ImageIcon("start.png");

完美无缺! 但是当我想制作一个Runnable jar文件(Export - >选择Runnabable jar文件)并打开特定的jar时,图像不会出现在按钮,菜单等上。

我需要在哪里放置我的图片来解决这个问题,以及使用什么代码? 感谢。

2 个答案:

答案 0 :(得分:2)

new ImageIcon(file)指定一个在JAR中无法工作的本地文件。尝试更改该行以使用类加载器。

 new ImageIcon(getClass().getResource("/start.png"));

如果您处于静态环境

 new ImageIcon(Foo.class.getResource("/start.png"));

我不确定您的项目结构或IDE(如果有的话),因此我无法就图像的位置提出任何建议。只需确保图像包含在JAR导出中并最终位于顶层,或者与getResource()调用匹配的结构

答案 1 :(得分:1)

如果最简单的方法是将图像包含在jar文件本身中,这将减少您需要部署的资源数量;更容易部署一个jar然后jar文件和一堆如果图像

它还减少了执行上下文可能出现的问题,并且必须计算相对路径

您实现这一目标取决于您如何构建jar,例如在Netbeans和Eclipse中,您可以将图像复制到src目录中。在maven中,您需要将图像包含在resources目录

这将改变您加载图像或资源所需的方式

根据您的需要,您需要使用Class#getResourceClass#getResourceAsStream,例如

ImageIcon img = getClass().getResource("/start.png");

请记住,您需要使用src目录

上下文中图像的完整路径

这意味着如果您将resources放在images目录下的src目录下,那么您需要使用/images/start.png例如