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