Вы можете сделать это довольно легко и очень переносимо на разных платформах, включив заголовок Bundle-NativeCode
в манифест пакета.
Например:
Bundle-NativeCode: lib/mylib1.dll ; lib/mylib2.dll ;
osname=Win32 ;
processor=x86,
lib/libmylib1.so ; lib/libmylib2.so ;
osname=linux;
processor=x86
Willзагрузить
- lib / mylib1.dll и lib / mylib2.dll (из внутри пакета), если ОС Win32, а тип процессора x86
или
- lib / libmylib1.so и lib / libmylib2.so, если ОС Linux и тип процессора x86
Красота этого подхода заключается в том, чтоВы можете включать различные собственные библиотеки на основе архитектуры, и среда выполнения OSGi автоматически выберет правильный набор для текущего platofmr, когда вы, например, вызовете System.loadLibrary("mylib1");
Вот старый блог на эту тему:http://robertvarttinen.blogspot.co.uk/2008/12/bundle-nativecode-in-osgi-manifest.html