2011-06-09 40 views
3

我有一個eclipse插件(由第三方開發,沒有可用的源代碼),它使用二進制庫來完成它的一些工作。該圖書館是開源的。分佈式插件僅包含Windows的二進制文件,但我可以輕鬆地將其編譯爲其他平臺。我無法弄清楚哪裏是圖書館,以便它會被拿起。我目前正在開發OS X,但Linux也是一個問題。eclipse在插件中尋找二進制庫在哪裏?

Windows庫位於eclipse/plugins/plugin_name/os/win32/x86中。我試過使用os/macosx/x86_64(它對應於org.eclipse.osgi.service.environments中的常量)和一堆其他變體,但沒有任何作用,並且我找不到有關eclipse如何設置的任何文檔圖書館的路徑。

我應該在哪裏把庫放在插件子目錄中,以便eclipse將它們加載到合適的平臺上?

+0

難道你不得不重新編譯庫二進制**和**重新編譯它們的Java本地方法和JNI C/C++之間的JNI鏈接? – 2011-06-14 16:45:27

回答

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/osx/x86; osname=macosx;processor=x86 

廣場OS X庫,重新壓縮罐子,你應該做的:

Bundle-NativeCode: /os/win32/x86;osname=win32;processor=x86 

然後,你可以添加路徑,OS X這樣!