[résolu] jpcap

ranirost
[résolu] jpcap

Salut.
j'est pas trouvé comment installer jpcap????????????????????
j'ai suivi le manuel:
1. Download and install Javatm2 Platform, Standard Edition (J2SEtm) JRE or JDK.
2. Download and install the latest WinPcap.
3. Download and run Self Installer.
4. Follow the instruction of the installer.

If you do not want to use the installer, you can also install manually.

1. Download and extract the Jpcap source code from the Download page.
2. Copy "lib\Jpcap.dll" into "[JRE directory]\bin" or "[JRE directory]\lib\ext\x86"
3. Copy "lib\jpcap.jar" into "[JRE directory]\lib\ext"
4. If you installed JDK, you also need to copy "lib\jpcap.jar" into "[JDK directory]\jre\lib\ext".

Note: [JRE directory] is usually "C:\Program Files\Java\j2re*".
[JDK directory] is usually "C:\Program Files\Java\jdk*".

mais ca marche pas et voila l'érreur:
java.lang.UnsatisfiedLinkError: getDeviceDescription

at jpcap.Jpcap.getDeviceDescription(Native Method)

at csys_security.Tcpdump.main(Tcpdump.java:12)

Exception in thread "main"

Svp aider moi

fredericmazue

Quote:
java.lang.UnsatisfiedLinkError

Très simple:

Sniffer le réseau ne peux se faire en Java. Donc comment procède jpcap ?
Les types ont écrit des .dll (ou .so sous Linux) natives qui font le boulot, puisqu'il n'y a que comme ça qu'on peut faire. Donc les librairies dll/so travaillent et java récupère les résultats.

Pour que ça marche la JVM doit trouver ces dll. Si elle ne trouve pas, elle lève l'exception java.lang.UnsatisfiedLinkError. Tu vois ce que je veux dire. :D
Pour que la JVM trouve les dll, celles-ci doivent être pointées par le PATH (Windows) ou le LD_LIBRARY_PATH (Linux) de ton système. Et après ça marchera.

Message_privé@jrebillat. Tu vois mon ami, rien à faire, faut avoir des connnaissances minimum. Ici un "self installer" n'a pas fait l'affaire manifestement....

ranirost

Avant tout je vous remercie frederic pour ton aide, vraiment je te considère mon premier encadreur par ce que tu me répond à mes question très intéligemment.
Cette fois j'ai essayé de copier les fichiers .dll et .jar ds leurs emplacemet
C:jbuilderx/jdk/lib et programfiles/java/jre. et c le meme pb!!!!!!!!
j'ai essayé de télecharger un nv winpcap et un nv mesg d'erreu apparait:
java.lang.UnsatisfiedLinkError: C:\JBuilderX\jdk1.4\jre\bin\jpcap.dll: La procédure spécifiée est introuvable

at java.lang.ClassLoader$NativeLibrary.load(Native Method)

at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1560)

at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1477)

at java.lang.Runtime.loadLibrary0(Runtime.java:788)

at java.lang.System.loadLibrary(System.java:834)

at jpcap.Jpcap.(Jpcap.java:151)

at de.Tcpdump.main(Tcpdump.java:13)

Exception in thread "main"
je sait pas comment faire et quel est le pb?
Merci

fredericmazue

Quote:
Cette fois j'ai essayé de copier les fichiers .dll et .jar ds leurs emplacemet
C:jbuilderx/jdk/lib et programfiles/java/jre. et c le meme pb!!!!!!!!

Mais ce n'est pas ce que je t'ai dit de faire.
Quote:
je sait pas comment faire et quel est le pb?

Tu sais comment faire et quel est le problème.

Les fichiers .dll qui font partie de la distribution de jpcap (jpcall.dll et peut être d'autres dll aussi je ne sais pas.) DOIVENT être pointés par la variable d'environnement PATH de ton Windows.
C'est comme ça et pas autrement.

Sinon pour faire un essai, tu peux lancer ton programme dans la console comme ceci:

java -Djava.library.path=c:\le_repertoire_de_jpcap MonAppliJpcap

Ca revient au même sauf que tu risques de te tromper en tapant la commande pour lancer.
Le meiux est que tu fasses pointer des dll par le PATH, une fois pour toutes.
Inutile de bidouiller dans JBuilder, surtout que la JVM interne à Jbuilder et celle que tu utilises ne sont peut être pas les mêmes et aussi un conseil, laisse donc tomber JBuilder au profit de Netbeans ou même d'Eclipse. Tu y gagneras. Oui je sais pour l'instant ce n'est pas le moment, faut que tu finisses ton projet. :) Mais plus tard, examine la question.

ranirost
Résolu

Merci Fréderic c bien résolu.
Comme tu m'a dis il suffit de changer le PATH mais il faut redémarrer l'ordinateur.
Il ne demande pas de redémarrer mais les variations ne sont pris en charge qu'apré le redémarrage.
:)

fredericmazue

Quote:
mais il faut redémarrer l'ordinateur.

Même pas. Il suffisait soit de lancer une nouvelle console ou de relancer ton JBuilder pour que le PATH soit relu et que ça marche dans une console ou dans JBuilder respectivement.
Par contre si tu ne fais rien, la variable PATH étant copiée dans l'espace mémoire d'une application déjà lancée, celle-ci ne peut donc pas voir les modification du PATH si elle n'est pas relancée.

Mais bon, le principal est que ça marche :)
Bonne continuation :)