java - 无法从 eclipse 插件项目 Bundle 获取图像文件 URL

标签 java eclipse plugins eclipse-plugin eclipse-rcp

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

项目结构是: enter image description here

            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();

最佳答案

不要将“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 将您的插件解压到临时位置以访问文件。

关于java - 无法从 eclipse 插件项目 Bundle 获取图像文件 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53512723/

相关文章:

c# - 如何在 Visual Studio 扩展的属性窗口对象列表中修改名称

internet-explorer - GWT Developer插件解决IE安装问题

java - Centos 7 apache httpd无法加载weblogic插件库

Java RSA 公钥字符串错误

java - "Step into"在我自己的 Eclipse 项目中

java - Spring MVC : Apache Tile don´t work

java - 无法初始化主类,由 : java. lang.NoClassDefFoundError: com/mashape/unirest/http/exceptions/UnirestException [JAVA] 引起

Eclipse Juno : How to change background of code folding regions

java - 在不知道长度的情况下从 TcpClient.GetStream() 读取

java - JList 删除击键时选定的项目并单击