Eclipse插件开发:make bundle在`plugins`文件夹中爆炸

时间:2015-03-03 03:59:41

标签: eclipse eclipse-plugin eclipse-rcp nodeclipse

有旧的Eclipse Image Viewer插件https://github.com/persal/quickimage 我想要更新。

添加maven / tycho构建并针对Kepler构建。

它适用于新的Eclipse实例(项目 - >作为Eclipse应用程序运行), 但在此处安装时遇到问题#6

  

org.eclipse.swt.SWTException:i / o错误(java.io.FileNotFoundException:file:\ D:\ Progs \ Eclipses \ eclipse-standard-luna-R-win32-x86_64 \ eclipse \ plugins \ nu。 psnet.quickimage.plugin_1.1.0.201503030326.jar!\ icons \ previous.gif(文件名,目录名或卷标语法不正确。)

     

文件名,目录名或卷标语法不正确

查看代码有行

  

iconsdir = FileLocator.resolve(QuickImagePlugin.getDefault()。getBundle()。getEntry(" /"))。getFile()+" icons" + File.separator;

获得那样的路径。

问题是,如果bungle jar变成像nu.psnet.quickimage_1.0.3.2

这样的文件夹,那么应该有效

更新:作为IDE使用Luna 4.4.0

2 个答案:

答案 0 :(得分:1)

这是由feature.xml中的一个标志控制的,其中包含插件。

<plugin id="..." unpack="true"/>

答案 1 :(得分:1)

如果您可以更改插件的来源,则可以更改

iconsdir = FileLocator.resolve(QuickImagePlugin.getDefault().getBundle().getEntry("/")).getFile() + "icons" + File.separator;

类似于:

URL dir = FileLocator.find(QuickImagePlugin.getDefault().getBundle(),
                           new Path("icons"), null);

dir = FileLocator.toFileURL(dir);

String iconsdir = dir.getPath() + File.separator;

即使将插件打包在jar中,这也应该有效。