wrapper.system.library.path.<n>

Compatibilité :3.6.0
Éditions :Édition ProfessionnelleÉdition StandardÉdition Community
Plateformes :WindowsMac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Certaines bibliothèques natives font référence à d'autres bibliothèques liées dynamiquement. Java localise la bibliothèque JNI initiale à l'aide du chemin de bibliothèque Java, mais les bibliothèques secondaires sont chargées à l'aide du mécanisme par défaut du système d'exploitation.

Ces propriétés permettent de spécifier une liste de répertoires dans lesquels rechercher les bibliothèques secondaires chargées à l'aide du mécanisme par défaut du système d'exploitation. Les chemins configurés s'appliquent à tous les sous-processus du Wrapper.

Composant <n> :

Chaque élément possède un nom de propriété qui commence par « wrapper.system.library.path. » et le composant « <n> » du nom de propriété est un nombre entier incrémenté à partir de « 1 ». Par défaut, la numérotation doit être séquentielle, sans lacunes. La propriété wrapper.ignore_sequence_gaps peut éventuellement être définie pour autoriser des lacunes dans la séquence.

Exemple :
wrapper.system.library.path.1=../lib

NOTE

Les propriétés wrapper.system.library.path.<n> ont été introduites pour la première fois dans la version 3.6.0 du Wrapper. Les versions antérieures du Wrapper pouvaient définir le chemin des bibliothèques secondaires en configurant manuellement des variables d'environnement.

Sous Windows, le système recherche d'abord dans le répertoire de travail actuel (l'emplacement de wrapper.exe), puis dans le répertoire Windows System32 et le répertoire Windows. Enfin, il parcourt l'intégralité du PATH système. Si les deux DLL se trouvent dans le répertoire lib de votre application, il peut être nécessaire d'ajouter son emplacement au chemin système comme suit. Le set.PATH est destiné à Windows et le set.LD_LIBRARY_PATH rend le fichier de configuration multiplateforme afin qu'il fonctionne également sur les systèmes UNIX. macOS utilise également 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%

Notez que le fait de placer la bibliothèque secondaire dans le PATH plutôt que dans le répertoire de travail actuel présente le risque qu'une ancienne version de la bibliothèque soit rencontrée en premier dans le répertoire Windows System32 si elle a été installée par une autre application. Cela est dû à l'ordre dans lequel le système recherche le fichier.

Ce problème a été observé lors de l'utilisation des bibliothèques JCO de SAP si d'autres applications SAP sont également installées sur le système.

Bibliothèques natives spécifiques à la plateforme

La plupart des bibliothèques s'attendent à ce que leurs bibliothèques natives portent le même nom pour toutes les plateformes. Cela entraîne généralement la nécessité de publier des distributions spécifiques à chaque plateforme d'une application. Cependant, en définissant le chemin de bibliothèque comme suit, le Wrapper référencera dynamiquement le répertoire spécifique à la plateforme approprié à l'exécution, ce qui permet d'inclure toutes les plateformes prises en charge dans une seule distribution du Wrapper.

Exemple :
wrapper.system.library.path.1=../lib
wrapper.system.library.path.2=../lib/native/%WRAPPER_OS%-%WRAPPER_ARCH%-%WRAPPER_BITS%

Ce qui se résout comme suit :

Windows :
wrapper.system.library.path.1=../lib
wrapper.system.library.path.2=../lib/native/windows-x86-32
Linux :
wrapper.system.library.path.1=../lib
wrapper.system.library.path.2=../lib/native/linux-x86-32
Solaris :
wrapper.system.library.path.1=../lib
wrapper.system.library.path.2=../lib/native/solaris-sparc-32

Référence : Bibliothèque