Bonjour,
Je suis en train de réaliser un petit programme qui permettrai d'utiliser du code java (classe déjà existante) dans un logiciel réalisé en C/C++ sous Visual C++ 6. Pour ce faire j'ai fait pas mal de recherche qui m'on conduit sur le chemin de JNI (utiliser le plus souvent pour faire l'inverse mais bon).
J'ai donc trouvé un exemple (ici) sur lequel je m'inspire mais sans parvenir à créer la JVM…
J’ai créer un projet de base en Win32 Console Application. J’ai lié les répertoires C:\j2sdk1.4.2_07\include et C:\j2sdk1.4.2_07\include\win32 pour jni.h ainsi que jni_md.h. Après l’avoir fait il me manque jvm.lib… Je met cette librairie dans le projet… Aucune erreur… A l’exécution j’ai un message d’erreur qui dit "Erreur manque jvm.dll" (en gros)… je fais une recherche, en trouve plusieurs mais je ne sait pas lequel prendre et comment l’inclure au projet…
J’ai tester d’en mettre une dans system32 puis dans mon répertoire de projet et je n’ai plus l’erreur mais toujours aucune jvm de créer…
Voici mon code pour réaliser cette exemple :
Résultat de l'execution:
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 #include "stdafx.h" #include <iostream.h> #include <jni.h> JNIEnv *env; JavaVM *jvm; jclass cls; jmethodID mid; jobject obj; jint res; JavaVMInitArgs vm_args; JavaVMOption options[1]; int creationJVM() { jint res; char classpath[1024]; sprintf(classpath, "%s", "-Djava.class.path=.:./lib"); options[0].optionString = classpath; vm_args.version = JNI_VERSION_1_4; vm_args.options = options; vm_args.nOptions = 1; vm_args.ignoreUnrecognized = 1; res = JNI_CreateJavaVM(&jvm, (void **) &env, &vm_args); if (res < 0) { return 0; } return 1; } int main(int argc, char* argv[]) { int testCrea; testCrea = creationJVM(); if (testCrea == 0) { cout << "Impossible de créer la JVM." << endl; } //cls = env->FindClass("TestJni"); if (!cls) { cout << "Impossible de charger TestJni.class" << endl; return 0; } //jvm->DestroyJavaVM(); return 0; }
En espérant pouvoir avoir de l’aide de votre part… (et avoir été clair
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Impossible de crÚer la JVM. Impossible de charger TestJni.class Press any key to continue)
Hannubis
Partager