Bonjour,

Encore une question du boulet qui capte rien au JNI... et pourtant c'est pas faute de chercher !

Bon alors voila, je veux simplement executer des méthodes d'une classe java depuis du C. D'après les exemples trouvés sur internet, çà à pas l'air bien méchant, seul problème, çà marche pô !

Extrait de ma classe java:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
class CLIST_S{
 
	void afficher(){
		int size = liste.size();
		System.out.println("Taille de la liste = " + size);
		Iterator<String> it = liste.iterator();
		while(it.hasNext()){
			System.out.print("'" + it.next() + "' ");
		}
		System.out.print("\n");
	}
}
Extrait du code natif en C :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
JNIEXPORT void JNICALL Java_Main_native_1methode(JNIEnv * env, jobject obj, jobjectArray l){
 
jclass cls = (*env)->GetObjectClass(env,obj);
jmethodID mid = (*env)->GetMethodID(env,cls, "afficher", "()V");
(*env)->CallVoidMethod(env,obj, mid);
}
Et donc, çà compile et çà plante à l'execution -> "EXCEPTION_ACCESS_VIOLATION" et tout le tralala...
Je comprends pas, çà ressemble enormément aux exemples du livre sur le jni que j'ai téléchargé sur le site de sun...

Merci d'avance de votre aide.