215 votes

Comment définir le chemin de la bibliothèque java.library.path à partir d'Eclipse ?

Comment puis-je définir le java.library.path pour l'ensemble d'un projet Eclipse ? J'utilise une bibliothèque Java qui repose sur des fichiers spécifiques au système d'exploitation et j'ai besoin de trouver une .dll/ .so/ .jnilib . Mais l'application se termine toujours par un message d'erreur indiquant que ces fichiers ne sont pas trouvés dans le chemin de la bibliothèque.

Je voudrais configurer l'ensemble du projet pour utiliser le chemin de la bibliothèque. J'ai essayé d'ajouter le chemin comme argument VM à certaines configurations d'exécution dans Eclipse, mais cela n'a pas fonctionné.

1 votes

Je l'ai fait en l'ajoutant comme argument VM et cela a fonctionné. Comment avez-vous fait exactement ?

301voto

John Gardner Points 10882

Ne jouez pas avec le chemin de la bibliothèque ! Eclipse le construit lui-même !

Au lieu de cela, allez dans les paramètres de bibliothèque de vos projets et, pour chaque jar/etc qui nécessite une bibliothèque native, développez-la dans le champ Bibliothèques onglet. Dans l'arborescence qui s'y trouve, chaque bibliothèque comporte des éléments pour les emplacements de la bibliothèque source/javadoc et de la bibliothèque native.

Plus précisément : sélectionnez Project , clic droit -> Propriétés / Chemin de construction de Java / Bibliothèques sélectionnez un .jar, développez-le, sélectionnez Emplacement de la bibliothèque indigène , cliquez Modifier la boîte de dialogue de sélection de dossier apparaît)

La modification du chemin de la bibliothèque en ligne de commande doit être votre dernier effort, car vous risquez de casser quelque chose qui est déjà correctement défini par Eclipse.

Native library location

0 votes

OK, cela semble fonctionner. Maintenant, le bon chemin est effectivement indiqué dans le message d'erreur. required library not found : /Users/janusz/Documents/workspace/SlideSelector/lib/libOpenCV.jnilib. Le fichier se trouve exactement dans ce répertoire. Il semble y avoir une autre erreur

7 votes

Mais comment cela fonctionne-t-il si vous avez plus d'un dossier à ajouter ?

2 votes

C'est une bonne question. Pourquoi avez-vous plus d'un dossier de bibliothèques natives pour un jar ? Je suis presque sûr qu'il existe un moyen d'intégrer les bibliothèques natives elles-mêmes dans le jar, ce qui pourrait être la solution ?

39voto

matt b Points 73770

Si vous l'ajoutez en tant qu'argument VM, assurez-vous de le préfixer avec -D :

-Djava.library.path=blahblahblah...

4 votes

Voir ce billet : stackoverflow.com/a/2309723/510583 . -Djava.library.path="${workspace_loc:project} \lib ;${env_var:PATH}"

24voto

schieferstapel Points 326

En dehors de la méthode décrite dans la réponse approuvée, il existe une autre méthode si vous avez des librairies natives uniques dans votre projet.

  • dans Propriétés du projet->Chemin de construction Java->Onglet "Source", il y a une liste de vos dossiers de sources.
  • Pour chaque entrée, il y a "Native library locations", qui prend également en charge les chemins dans l'espace de travail.
  • Cela permettra à Eclipse de l'ajouter à votre java.library.path .

3 votes

Awesome !!!! merci beaucoup !!! cela a résolu mon problème. j'avais besoin d'ajouter la dylib à mon projet et un jar. le réglage de l'emplacement de la bibliothèque native a réglé le problème !

12voto

Scott Stanchfield Points 15863

Pour un lancement d'application donné, vous pouvez faire comme Jim le dit.

Si vous souhaitez le définir pour l'ensemble de l'espace de travail, vous pouvez également le définir sous la rubrique

Window->
  Preferences->
    Java->
      Installed JREs

Chaque JRE a un "Default VM arguments" (qui, je crois, sont complètement ignorés si des arguments VM sont définis pour une configuration d'exécution).

Vous pouvez même configurer différents JRE/JDK avec différents paramètres et faire en sorte que certains projets en utilisent un et d'autres un autre.

8voto

sonaht Points 61

Vous pouvez simplement ajouter -Djava.library.path=yourPath au eclipse.ini .

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