Jpcap plante à l'ouverture d'une interface réseau

Fermé
GoldenBolt Messages postés 1 Date d'inscription lundi 25 juin 2018 Statut Membre Dernière intervention 25 juin 2018 - Modifié le 26 juin 2018 à 14:08
Bonjour,

je suis utilisateur de la bibliothèque Jpcap pour sa fonctionnalité à envoyer des paquets ARP. J'ai compilé plusieurs fois mon code au fur et à mesure de mon projet mais lors de l'ouverture d'une interface réseau par la commande
JpcapCaptor.openDevice(interface,snaplen,promisc,to_ms);
, le programme plante et me renvoie l'erreur :
java.lang.NoSuchMethodError: setPacketValue
at jpcap.JpcapCaptor.nativeOpenLive(Native Method)
at jpcap.JpcapCaptor.openDevice(JpcapCaptor.java:61)
.
J'utilise une version 64 bits de Windows, aussi le ficher jpcap.dll que je possède est issu d'une compilation du code source pour cet OS.
Toute piste sera la bienvenue. Merci d'avance !

Nouvelles pistes :
Après avoir regardé d'un peu plus près le code source du fichier jpcap.dll, je constate que le code suivant est employé dans la méthode openDevice (celle qui plante) du fichier JpcapCaptor.java :
JpcapCaptor jpcap = new JpcapCaptor();
String ret = jpcap.nativeOpenLive(intrface.name, snaplen, (promisc ? 1 : 0), to_ms);
D'après le compilateur, c'est la deuxième ligne de ce bout de code qui plante. J'ai donc recherché dans la méthode nativeOpenLive qui provient du fichier JpcapCaptor.c dont voilà le début :
JNIEXPORT jstring JNICALL

Java_jpcap_JpcapCaptor_nativeOpenLive(JNIEnv *env,jobject obj,jstring device,jint snaplen,jint promisc,jint to_ms){
char *dev;
jint id;
set_Java_env(env);
Or, dans cette dernière fonction (set_Java_env), j'ai retrouvé l'appel à la méthode setPacketValue sous la forme suivante :
setPacketValueMID=(*env)->GetMethodID(env,Packet,"setPacketValue","(JJII)V");
N'ayant que des bases très faibles en C, je souhaiterai connaître la signification de ces différentes méthodes et si possible d'où vient l'erreur.
La source est disponible à l'adresse suivante : https://github.com/jovigb/jpcap-x64/tree/master/src