我为Eclipse开发了一个插件,它必须访问本机库。
.so文件是否必须位于/usr/lib
以便插件访问它?除非它存在,否则我的插件无法访问其中的方法。我需要我的插件来访问自身内部的.so,这样即使我部署插件,它也可以在没有任何配置更改的情况下工作。我使用System.loadLibrary()
来加载.so但是即使我在System.load()
中使用其完整路径加载库,除非我将.so文件复制到/usr/lib
,否则它不起作用。
如何让我的插件从其自己的源文件夹访问它?
答案 0 :(得分:0)
您需要将Bundle-NativeCode指令添加到MANIFEST.MF。以下是关于如何制定它的几个链接:
Bundle-NativeCode in the OSGi manifest
请注意,您在指令中提供的路径是相对于插件目录结构的。例如,'/ mylibrary.so'表示文件位于插件的根目录中。