Configure native libraries in shared libraries

 

+

Search Tips   |   Advanced Search

 

 

Overview

Native libraries are platform-specific library files, including...

...that can be configured within shared libraries. Native libraries are visible to an application class loader whenever the shared library is associated with an application. Similarly, native libraries are visible to an appserver class loader whenever the shared library is associated with an appserver.

When designing a shared library, consider the following conditions regarding Java native library support:

When configuring a shared library on a shared library settings page, if you specify a value for Native Library Path, the native libraries on this path are not located by the WAS application or shared library class loaders unless the class which loads the native library was itself loaded by the same class loader.

Because a native library cannot be loaded more than once by a class loader, it is preferable for native libraries to be loaded within shared libraries associated with the class loader of an appserver, because these class loaders persist for the lifetime of the server.

 

Procedure

  1. Implement a static method in the class that loads the native library.

    In the class that loads the native library, call System.loadLibrary(native_library) in a static block. For example:

    static {System.loadLibrary("native_library");

    native_library loads during the static initialization of the class, which occurs exactly once when the class loads.

  2. On the shared library settings page, set values for Classpath and Native Library Path that enable the shared library to load the native library.

  3. Associate the shared library with the class loader of an appserver.

    Associating a shared library with the class loader of an appserver, rather than with an application, ensures that the shared library is loaded exactly once by the appserver class loader, even though applications on the server are restarted or dynamically reloaded. Because the native library is loaded within a static block, the native library is never loaded more than once.


 

Related concepts

Class loaders

 

Related tasks

Manage shared libraries
Deploy and administering J2EE applications
Create shared libraries

 

Related Reference

Shared library settings