我有一个eclipse插件(由第三方开发,没有可用的源代码),它使用二进制库来完成它的一些工作。该库是开源的。分布式插件仅包含Windows的二进制文件,但我可以轻松地为其他平台编译它。我无法弄清楚的是放置库的位置,以便它可以被拾取。我目前正在研究OS X,但Linux也是一个问题。
Windows库位于eclipse / plugins / plugin_name / os / win32 / x86中。我已经尝试过使用os / macosx / x86_64(它对应于org.eclipse.osgi.service.environments中的常量)和一堆其他变种,但没有任何作用,我找不到任何关于eclipse如何设置的文档图书馆的路径。
我应该将库放在插件子目录中,以便eclipse将它们加载到适当的平台?
答案 0 :(得分:1)
二进制库(例如* .dll)可以捆绑在插件JAR本身中。在这种情况下,它可能位于/os/win32/x86/thelib.dll。
如果您可以编辑第三方插件中的META-INF / MANIFEST.MF(解压缩jar文件),请检查标题“Bundle-NativeCode”。例如:
Bundle-NativeCode: /os/win32/x86;osname=win32;processor=x86
然后你可以用这种方式为OS X添加路径:
Bundle-NativeCode: /os/win32/x86;osname=win32;processor=x86, /os/osx/x86; osname=macosx;processor=x86
将OS X libs放在相应的文件夹中,重新压缩jar,你就应该完成了!