Bonjour,
Je découvre le développement de servlet et me confronte à un problème de chargement d'une DLL. J'ai pourtant rédigé la même classe pour être executé en ligne de commande, je n'ai pas d'erreur et ma classe fonctionne.
Je dois charger "MaDLL.dll" contenue dans le repertoire c:\Dev\Java\dll\. (je suis en environnement Windows 2008 r2).
J'ai pas mal butiné sur le net et ai essayé, les unes après les autres, les méthodes suivantes :
- J'ai défini java.library.path dans mon code ( par l'appel de System.setProperty("java.library.path","C:/Dev/Java/Dll");)
- J'ai défini CATALINA_OPTS dans catalina.bat (set CATALINA_OPTS="-Djava.library.path=C:/Dev/Java/Dll")
- J'ai défini la clef dans le registre HKEY_LOCAL_MACHINE\SOFTWARE\Apache...\Tomcat\7.0\... à la même valeur.
Ces trois méthodes sont sans effet, System.loadLibrary("madll"); renvoie no madll in java.library.path.
Si j'appel explicitement la DLL (System.load("C:/Dev/Java/Dll/madll.dll");) j'obtiens comme erreur dans la console : java.lang.UnsatisfiedLinkError: C:\Dev\Java\Dll\madll.dll: Can't find dependent libraries. L'ensemble des DLL sont pourtant dans le même répertoire. (c:\Dev\Java\Dll)
Pour l'heure, si j'écris quelques lignes avant le chargement de la DLL :
System.setProperty("java.library.path","C:/Dev/Java/Dll");
System.out.println("java.library.path = " + System.getProperty("java.library.path"));
Alors, je trouve "java.library.path = C:/Dev/Java/Dll" dans la console
Quelqu'un peut il m'éclairer ?
Séb
Partager