HowTo: Como configurar la ruta de la biblioteca para bibliotecas dependiented de JNI

Compatibilidad :2.2.9
Ediciones :Edición ProfesionaEdición EstándarEdición de la Comunidad
Plataformas :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

Java carga las bibliotecas nativas (JNI) al buscar la ruta definida por la propiedad de sistema java.library.path.. El Java Service Wrapper facilita configurar esta ruta en una forma independiente de plataforma, usando las propiedades wrapper.java.library.path.<n>.

El ejemplo siguiente configura una ruta que buscará por las bibliotecas JNI en los directorios ../lib/ y ../lib2/:

wrapper.java.library.path.1=../lib/
wrapper.java.library.path.1=../lib2/

Esto es suficiente en la mayoría de las bibliotecas JNI. Sin embargo, algunas bibliotecas hacen uso de otras bibliotecas vinculadas dinámicamente. Java localizará la biblioteca JNI inicial utilizando la ruta de la biblioteca Java, pero las bibliotecas secundarias se cargan usando el mecanismo predeterminado de la plataforma.

En Windows, el sistema primero buscará en el directorio de trabajo actual (la ubicación de wrapper.exe), despuén en directorio Windows system32 y el directorio de Windows. Al final, buscará por todas las rutas PATH del sistema. Si ambas DLLs se ubican en el directorio lib de su aplicación, puede que sea necesario agragar su ubicación en su sistema, como sigue. set.PATH es para Windows y set.LD_LIBRARY_PATH hace la configuración multiplataforma y funciona también en sistemas UNIX. Mac OSX también usa la variable set.DYLD_LIBRARY_PATH.

set.PATH=..%WRAPPER_FILE_SEPARATOR%lib%WRAPPER_PATH_SEPARATOR%%PATH%
set.LD_LIBRARY_PATH=..%WRAPPER_FILE_SEPARATOR%lib%WRAPPER_PATH_SEPARATOR%%LD_LIBRARY_PATH%
set.DYLD_LIBRARY_PATH=..%WRAPPER_FILE_SEPARATOR%lib%WRAPPER_PATH_SEPARATOR%%DYLD_LIBRARY_PATH%

Tenga en cuenta que colocar la biblioteca secundaria en PATH en lugar de en el directorio de trabajo actual tiene el riesgo de que una versión anterior de la biblioteca sea encontrada primero en el directorio Windows system32 si fue instalada por otra aplicación Esto se debe al orden en que el sistema busca el archivo.

Este problema se ha notado al trabajar con bibliotecas JCO de SAP si otras aplicaciones SAP también están instaladas en el sistema.

Por favor, lea la página de la propiedad wrapper.java.library.path.<n> para más información.