1

我目前有一个带视图的 Eclipse 插件。在 src 文件夹中,有一个图标文件夹,其中包含一些我想在我的插件中使用的图像。在我的程序中,我使用以下行:

public static final Image anImage = new Image(null, "sample_image.gif");

然后继续在某处使用该图像。当我在本地运行我的程序时,这项工作有效,但是当我将插件导出到 jar,然后将其安装到新的 Eclipse 时,插件会中断。当我在代码中取出图像使用时,插件在没有图像的情况下正常工作。我想知道正确的方法是什么才能让我的图像在导出的 jar 文件中用于插件安装。

我有一个与此类似的先前问题和 SO 问题,有人建议使用 Classloader.getResource()。我没有太多运气试图让它工作,而且似乎没有必要,因为默认情况下,如果您使用 PDT 生成的 Eclipse 视图插件演示模板,它带有一个使用“ sample.gif",据我所知,它工作正常。

感谢您的任何建议。

4

1 回答 1

9

通常,您应该使用图标文件夹方法。确保在 build.properties 文件中导出文件夹(在 bin.includes 部分下)。如果您使用 MANIFEST.MF 编辑器并勾选“构建”选项卡的“二进制构建”部分中的图标文件夹。src 文件夹的处理方式不同 - 它假定有要编译的代码并且包含编译后的输出,而不是原始文件夹。当使用工作区中的插件从 Eclipse 运行时,它“工作”,因为使用工作区目录而不是编译的插件。您可以使用AbstractUIPlugin中的 imageDescriptorFromPlugin 加载图像。例如使用;

Image img = AbstractUIPlugin.imageDescriptorFromPlugin("you.bundle.id", "/icons/sample_image.gif").createImage();
于 2012-08-15T07:16:01.370 回答