Salut,
je suis en train d'essayer de faire fonctionner la machine virtuelle java (JVM) dans un programme C++ en utilisant la JNI (Java Native Interface).
Dans mon programme je commence par inclure le fichier "jni.h" qui contient les déclarations des fonctions utiles.
Ensuite, pour lancer la JVM, je dois utiliser la commande "
JNI_CreateJavaVM(...);"
Et j'ai un probléme de linkage pendant la compilation. Visual Studio .NET 2003 me donne l'erreur suivante :
error LNK2001: symbole externe non résolu "long __stdcall JNI_CreateJavaVM(struct JavaVM_ * *,void * *,void *)" (?JNI_CreateJavaVM@@$$J212YGJPAPAUJavaVM_@@PAPAXPAX@Z)
J'ai bien déclaré la dll "jvm.dll" ("Java\jdk1.5.0_06\jre\bin\server") dans les variables d'environnement de mon programme.
Lorsque je regarde les fonctions qui y sont implémentées avec l'utilitaire "Dependency Walker", je trouve bien des traces de la fonction, mais sous la forme : "JNI_CreateJavaVM"
Dans mon programme, j'ai même tenté de définir la fonction en utilisant la ligne suivante :
__declspec(dllimport) jint __stdcall JNI_CreateJavaVM(JavaVM**, void**, void*);
mais il n'y a rien à faire, j'ai toujours le même problème de linkage à la compilation.
Quelqu'un pourrait-il m'aider, svp ?