Accès dll depuis java avec JNI
Bonjour,
j'aimerais pouvoir lancer des fonctions d'une dll depuis un programme java. Je commence donc en douceur avec un simple helloworld mais celui-ci ne marche pas. Le message d'erreur que je recois est le suivant :
Code:
1 2 3 4 5 6 7
|
java.lang.UnsatisfiedLinkError: no Synchro in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at inter.HelloWorld.<clinit>(HelloWorld.java:8)
Exception in thread "main" |
le code java est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| package inter;
public class HelloWorld {
public native void displayHelloWorld();
static {
System.loadLibrary("Synchro");
}
public static void main(String[] args) {
new HelloWorld().displayHelloWorld();
}
} |
ma dll s'appelle Synchro.dll.
Je l'ai déposé dans Windows/sytem32 et aussi dans windows.
Mon path est : c:\windows\Sytem32.
Quelqu'un a t il une idee? pourquoi la dll n'est elle pas trouvee?
NB : je travaille sous eclipse, j'ai généré mon HelloWorld.h à partir de la commande "javah -jni HelloWorld" j'ai créé un projet sous Visual C++ et j'ai créé "Synchro.cpp" faisant appel à HelloWolrd.h et jni.h. Ensuite j'ai compilé ma dll avec Visual C++ toolkit 2003 avec la commande suivante :
Code:
cl /LD /I"C:\Program Files\Microsoft Visual Studio\VC98\Include" /I"C:\Program Files\Microsoft Visual Studio\VC98\Lib" /I"C:\Program Files\Java\jdk1.5.0_05\include" /I"C:\Program Files\Java\jdk1.5.0_05\include\win32" /Fe"C:\Program Files\Microsoft Visual Studio\MyProjects\Synchro\Synchro.dll" "C:\Program Files\Microsoft Visual Studio\MyProjects\Synchro\Synchro.cpp" /link /libpath:"C:\Program Files\Microsoft Visual Studio\VC98\Lib" /defaultlib:"C:\Program Files\Microsoft Visual Studio\VC98\Lib\WS2_32.lib"
et quand je run sous eclipse j'obtiens le message d'erreur disant qu'il ne trouve pas la dll.
Une idee?
Merci d'avance pour vos réponses