66 votes

Qu'est-ce que LD_LIBRARY_PATH et comment l'utiliser ?

Je participe au développement d'un projet Java, qui utilise des composants C++, j'ai donc besoin de Jacob.dll . (sous Windows 7)

Je continue d'obtenir java.lang.UnsatisfiedLinkError: no JacobDB in java.library.path peu importe où je mets Jacob.dll....

J'ai cherché des décisions possibles et celle que je n'ai pas encore essayée est de définir la LD_LIBRARY_PATH , en pointant vers le fichier .dll.

J'ai peu d'expérience et je ne connais pas la signification et l'utilisation de cette variable - pouvez-vous m'aider ?

20voto

Henning Makholm Points 13132

En règle générale, vous devez définir java.library.path sur la ligne de commande de la JVM :

 java -Djava.library.path=/path/to/my/dll -cp /my/classpath/goes/here MainClass

15voto

Markus Pilman Points 1438

LD_LIBRARY_PATH est spécifique à Linux et est une variable d'environnement pointant vers les répertoires où le chargeur dynamique doit rechercher des bibliothèques partagées.

Essayez d'ajouter le répertoire où se trouve votre .dll dans la variable PATH. Windows recherchera automatiquement dans les répertoires répertoriés dans cette variable d'environnement. LD_LIBRARY_PATH ne résoudra probablement pas le problème (à moins que la JVM ne l'utilise - je ne sais pas à ce sujet).

4voto

Shrikanth N Points 582

LD_LIBRARY_PATH est le chemin de bibliothèque par défaut auquel on accède pour vérifier les bibliothèques dynamiques et partagées disponibles. Il est spécifique aux distributions Linux.

Il est similaire à la variable d'environnement PATH dans Windows que l'éditeur de liens vérifie les implémentations possibles pendant le temps de liaison.

1voto

daniel kullmann Points 2619

Eh bien, le message d'erreur vous dit quoi faire : ajoutez le chemin où réside Jacob.dll à java.library.path. Vous pouvez le faire sur la ligne de commande comme ceci :

 java -Djava.library.path="dlls" ...

(en supposant que Jacob.dll se trouve dans le dossier "dlls")

Voir également java.lang.UnsatisfiedLinkError no *****.dll dans java.library.path

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X