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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
et quand je run sous eclipse j'obtiens le message d'erreur disant qu'il ne trouve pas la dll.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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"
Une idee?
Merci d'avance pour vos réponses
Partager