首页 > 解决方案 > 无法从 Eclipse 插件项目 Bundle 中获取图像文件 URL

问题描述

我正在尝试从 Eclipse 插件项目中的捆绑包中获取图像。但它总是返回null。请在下面找到项目结构。我想获取“images/EmailTemplatesOutput/assets/icon_4.png”下的图像“icon_4.png”的URL。我尝试了不同的方法。但它返回null。

项目结构是: 在此处输入图像描述

            String path = "icon_4.png";
            Bundle bundle = Platform.getBundle("BulkDemo");
            URL url = FileLocator.find(bundle, new org.eclipse.core.runtime.Path(path), null);
            ImageDescriptor imageDesc = ImageDescriptor.createFromURL(url);
            Image image = imageDesc.createImage();

标签: javaeclipsepluginseclipse-plugineclipse-rcp

解决方案


不要将“images”目录放在“src”文件夹中,将其放在项目的顶层(如“bin”和“META-INF”)。确保更新“build.properties”以在构建中包含图像文件夹。

图像的路径是相对于插件根目录images/EmailTemplatesOutput/assests/icon_4.png的(假设您移动了图像目录)。

返回的 URLFileLocator.find仅使用 Eclipse 方案,因此只能由 Eclipse API 使用。您可以通过添加以下内容将 URL 转换为普通文件 URL:

URL fileURL = FileLocator.toFileURL(url);

这可能会导致 Eclipse 将您的插件解压缩到一个临时位置以访问这些文件。


推荐阅读