Utiliser le fichier JAR dans c ++ / c

Dupliquer possible:
Comment accéder à la méthode Java dans une application C ++

J’ai besoin d’utiliser le fichier JAR dans le programme c ++. Par exemple, à partir de c ++, j’ai besoin d’appeler une fonction java. Par exemple, il existe une fonction qui accepte 2 entiers et renvoie l’ajout de cette fonction. Maintenant, j’ai besoin d’appeler cette fonction à partir de c ++. S’il vous plaît, guidez-moi Merci d’avance.

Vous devez utiliser l’ API Java Invocation , décrite ici. Cet exemple de code (issu de ce lien) montre comment charger une machine virtuelle Java et l’utiliser pour appeler une méthode Java statique appelée test avec un argument int , situé dans la classe Main . Dans cet exemple, le chemin d’access au fichier JAR serait défini à l’aide de la variable vm_args.classpath .

 #include  /* where everything is defined */ ... JavaVM *jvm; /* denotes a Java VM */ JNIEnv *env; /* pointer to native method interface */ JDK1_1InitArgs vm_args; /* JDK 1.1 VM initialization arguments */ vm_args.version = 0x00010001; /* New in 1.1.2: VM version */ /* Get the default initialization arguments and set the class * path */ JNI_GetDefaultJavaVMInitArgs(&vm_args); vm_args.classpath = ...; /* load and initialize a Java VM, return a JNI interface * pointer in env */ JNI_CreateJavaVM(&jvm, &env, &vm_args); /* invoke the Main.test method using the JNI */ jclass cls = env->FindClass("Main"); jmethodID mid = env->GetStaticMethodID(cls, "test", "(I)V"); env->CallStaticVoidMethod(cls, mid, 100); /* We are done. */ jvm->DestroyJavaVM(); 

Si vous souhaitez appeler une méthode non statique, le code ne sera que légèrement différent et le rest du didacticiel Java Native Interface explique tout ce que vous devez savoir.