HowTo: Como configurar la ruta de la biblioteca para bibliotecas dependientes 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. Por fin, 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 agregar 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. macOS 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 al colocar la biblioteca secundaria en PATH en lugar de en el directorio de trabajo actual tiene el riesgo de que se encuentre primero una versión anterior de la biblioteca en el directorio system32 en Windows si otra aplicación la instaló. Esto se debe al orden en el que el sistema busca el archivo.

Este problema se ha observado al trabajar con las bibliotecas JCO de SAP si otras aplicaciones de 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.