我目前有一个带有视图的eclipse插件。在src文件夹中,有一个icons文件夹,其中包含一些我想在插件中使用的图像。在我的程序中,我使用以下行:
public static final Image anImage = new Image(null, "sample_image.gif");
然后继续在某处使用该图像。当我在本地运行程序时,此功能有效,但是当我将插件导出到jar中,然后将其安装到新的Eclipse时,插件就会损坏。当我在代码中取出图像使用情况时,该插件可以正常工作而没有图像。我想知道什么正确的方法才能使我的图像在导出的jar文件中可用以进行插件安装。
我之前有一个类似的问题,所以有人建议使用Classloader.getResource()。我没有很多运气来尝试使其工作,似乎没有必要,因为默认情况下,如果使用PDT生成的Eclipse views plugin demo template,它带有一个图标文件夹,其中使用“据我所知,sample.gif”效果很好。
感谢您的任何建议。
最佳答案
通常,您应该使用icons文件夹方法。确保将文件夹导出到build.properties文件中(在bin.includes部分下)。如果使用MANIFEST.MF编辑器,然后在“构建”选项卡的“二进制构建”部分中勾选图标文件夹。
src文件夹的处理方式有所不同-假定存在要编译的代码,并且包含已编译的输出,而不是原始文件夹。
当使用带有工作空间的插件的日食运行时,它“起作用”,因为使用了工作空间目录而不是已编译的插件。
您可以使用AbstractUIPlugin中的imageDescriptorFromPlugin加载图像。
例如使用;
Image img = AbstractUIPlugin.imageDescriptorFromPlugin("you.bundle.id", "/icons/sample_image.gif").createImage();