Quel genre d'une erreur? Si c'est une exception, pouvez-vous l'attraper?
Une autre approche consisterait à définir exactement une classe responsable du chargement de la bibliothèque. Vous pouvez charger la bibliothèque dans l'initialisation statique de la classe, puis charger la classe == en chargeant la bibliothèque.
EDIT: les javadocs for Runtime.loadLibrary()
(qui System.loadLibrary
appels) suggère même l'approche initialiseur statique:
Si les méthodes natives sont à utiliser dans la mise en œuvre d'une classe, une stratégie standard est de mettre le natif code dans un fichier de bibliothèque (appeler libfile), puis de mettre un initialiseur statique:
static { System.loadLibrary("LibFile"); }
dans la déclaration de classe. Lorsque la classe est chargée et initialisée, l'implémentation du code natif nécessaire pour les méthodes natives sera ensuite également chargée.
Les javadocs disent aussi:
Si cette méthode est appelée plus d'une fois avec le même nom de la bibliothèque, les appels deuxième et les suivants sont ignorés.
ce qui me rend encore plus curieux au sujet de l'erreur que vous obtenez.
Je suppose qu'il obtient un UnsatisfiedLinkError parce que deux classloaders différents tentent de charger la même bibliothèque native – jitter
Quelques liens pertinents au problème http://bugs.sun.com/bugdatabase/view_bug.do?bug_id= 4750956 et http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5075039 – jitter
ouais jitter est juste, c'est l'erreur que je reçois, merci pour les liens jitter –