2016-10-19 1 views
0

J'ai deux dll, C:\foo\x.dll et C:\bar\y.dll, où x.dll dépend de y.dll (c'est-à-dire que l'implémentation de fonctions dans x appellera des fonctions dans y).Comment charger des DLL dépendantes en Java?

Dans une application Java, lorsque je charge x.dll à l'aide de JNA, que dois-je configurer pour m'assurer que je n'obtiens pas un UnsatisfiedLinkException?

Je suis en train de configurer jna.library.path à C:\foo, mais il semble que ce ne soit pas suffisant. Y compris à la fois C:\foo et C:\bar dans java.library.path n'aide pas non plus.

+0

Vous pourriez essayer d'appeler 'System.loadLibrary (" y ")' –

+0

Vous n'avez pas besoin de les charger du tout. La bibliothèque dépendante doit juste être sur le PATH, pas le 'java.library.path'. – EJP

Répondre

-1

Vous pouvez généralement appeler System.load("/name.dll") avec le chemin d'accès à votre bibliothèque dépendante avant de lancer l'appel JNA pour charger le serveur principal.

System.loadLibrary("name") fonctionnera si la bibliothèque est sur java.library.path et est conforme aux conventions de dénomination attendues.