OSGi 对Native Code的支持

     OSGi provides support for loading native libraries from components. This support includes loading

the correct library based on the OS of the target host. Each component’s classloader intercepts calls

to System.loadLibrary and loads libraries based on the configuration in the component’s manifest file.

As with any Java program, JNI must be used within the Java code wishing to call a native library.

1. 需在MANIFEST.MF中定义Header:Bundle-NativeCode

    Attributes of the Bundle-NativeCode header:

    (1)osname: The name of the target OS for the native library
    (2)osversion: The target OS version for the native library
    (3)processor: The target processor architecture for the native library
    (4)language: The ISO code for a language associated with the library
    (5)selection-filter: A selection filter that must be a valid filter expression indicating whether or
    not the native code should be enabled

    例如:

    Bundle-ManifestVersion: 2
    Bundle-SymbolicName: com.manning.osgi.native.code
    Bundle-NativeCode: lib/libmathematical.so;osname=Linux;processor=i686,
    lib/mathematical.dd;osname=Windows;processor=x86
    (...)

2. 参考案例

猜你喜欢

转载自springsfeng.iteye.com/blog/1147978