【问题标题】:Unable to get Image file URL from eclipse plugin project Bundle无法从 Eclipse 插件项目 Bundle 中获取图像文件 URL
【发布时间】:2018-11-28 05:30:24
【问题描述】:

我正在尝试从 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();

【问题讨论】:

  • 哪个语句返回null?你尝试过哪些不同的方法?其中一个路径为images/EmailTemplatesOutput/assets/icon_4.png
  • FileLocator.find(bundle, new org.eclipse.core.runtime.Path(path), null);此语句返回 null。是。 "images/EmailTemplatesOutput/assets/icon_4.png" 返回 null。

标签: java eclipse plugins eclipse-plugin eclipse-rcp


【解决方案1】:

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

图片的路径是相对于插件根目录的,所以它是images/EmailTemplatesOutput/assests/icon_4.png(假设你移动了图片目录)。

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

URL fileURL = FileLocator.toFileURL(url);

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

【讨论】:

  • 谢谢。有效。但是如何在 src 属性的图像标签中使用该路径?我必须像
  • 如果您谈论的是实际网页,或者这是 SWT 浏览器中的 HTML 页面,则这些都不适用于 Web 服务器?
  • 添加了有关 toFileURL 的信息,您可以将其用于 SWT 浏览器页面。
  • 是org.eclipse.swt.browser.Browser。我已在该浏览器中设置了该 html 内容。 html 包含 img 标签,我无法解析该 img 位置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-02
  • 2020-03-19
  • 2023-03-04
  • 2017-01-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多