Bonjour,
je développe une application java sous Eclipse avec une seule classe comportant le main. J'utilise des JARs et des DLLs externes.
Si j'ai bien tout compris, je spécifie les JARs dans le classpath et le chemin des DLLs dans le path (je suis sous windows).
Dans un premier temps, je spécifie JAR.jar à l'aide des options d'Eclipse. Ensuite, dans mon main, je wrap DLL.dll à l'aide d'une méthode - reposant sur System.loadLibrary(String libraryName) - qui est contenue dans JAR.jar.
Donc jusque là tout va bien et j'ai réussi à utiliser une méthode de la jar.
Cependant, pour l'appel suivant à une méthode de la jar, il me sort l'erreur suivante:
Du coup, je me suis dit trois choses :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 java.lang.UnsatisfiedLinkError: A_init at zenii.A_init(Native Method) at zenii.init at MyMainClass.main Exception in thread "main"
- Mon path n'est pas bien configuré : j'ai donc créé un lanceur batch qui me permet de configurer mon path (un echo me confirme sa validité) avant de lancer Eclipse, j'ai aussi créé une variable d'environnement en utilisant les options d'Eclipse (Run -> Run ... -> Environment) et enfin, j'ai rajouté le tout dans le java.library.path avec l'argument de vm : -Djava.library.path= ... sans succès
- Ma librairie est corrompue ... Si c'est le cas, comment le savoir ?
- Ma librairie (dll) ne s'est pas chargée. En effet, la première méthode appelée (qui passe) ne repose que sur la jar alors que la seconde (qui fait planter) repose sur la jar et la dll ... Comment faire pour la charger dans correctement dans ce cas ?
J'ai aussi essayé de la charger avec la méthode System.load(cheminAbsoluDeLaLib) mais encore une fois sans succès ...
Du coup, voilà je suis un peu coincé donc si quelqu'un a une idée, elle est la bienvenue.
Merci et bonne soirée.
Partager