Maison >Java >javaDidacticiel >Pourquoi est-ce que j'obtiens « UnsatisfiedLinkError : Impossible de trouver les bibliothèques dépendantes » lorsque j'utilise JNI ?

Pourquoi est-ce que j'obtiens « UnsatisfiedLinkError : Impossible de trouver les bibliothèques dépendantes » lorsque j'utilise JNI ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-16 09:49:03671parcourir

Why am I getting

Résolution de « UnsatisfiedLinkError » de JNI pour les bibliothèques dépendantes manquantes

L'interface native Java (JNI) offre la possibilité d'invoquer du code natif à partir de Java programmes. Cependant, rencontrer une « UnsatisfiedLinkError » peut être frustrant, vous laissant avec le message d'erreur déroutant : « Impossible de trouver les bibliothèques dépendantes. »

Dépannage de « UnsatisfiedLinkError »

Pour résoudre ce problème, il est crucial de comprendre la portée du chemin de recherche de la bibliothèque partagée et son indépendance par rapport au chemin de classe. Dans les environnements Windows, la bibliothèque JNI que vous essayez de charger doit résider dans le répertoire de travail actuel ou dans un répertoire spécifié dans la variable d'environnement Windows PATH.

Corrections suggérées

  1. Vérifiez l'emplacement de la bibliothèque partagée : Assurez-vous que les bibliothèques requises par votre code natif (par exemple, libsndfile, MPR.DLL) se trouvent dans les répertoires appropriés.
  2. Résoudre les divergences de noms de méthodes : Assurez-vous que les noms de méthodes dans la bibliothèque JNI correspondent exactement à ceux définis dans le fichier d'en-tête Java.
  3. Définir la propriété système (facultatif) : Dans Java 8 ou version ultérieure, vous pouvez définir manuellement la propriété propriété système java.library.path pour spécifier le chemin de recherche des bibliothèques partagées.

Documents de référence

Pour des informations détaillées sur JNI et ses spécifications, pensez à vous référer à :

  • Version HTML d'Oracle de la spécification JNI : https://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/intro.html
  • Rapport de bug sur le forum Oracle : https://bugs.java.com/bugdatabase /view_bug.do?bug_id=8021805

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn