Search code examples
javajnetpcap

java error, jnetpcap library in eclipse


I try to write simple sniffer, i would like to get list of devices. here is my function but doesn't work, i don't know what is wrong because i just started work with this library.

import java.util.ArrayList;
import java.util.List;
import java.io.*;

import org.jnetpcap.*;

public class sniffer
{
    public static void main(String[] args)
    {
        List<PcapIf> alldevs = new ArrayList<PcapIf>();
        StringBuilder errorbuf = new StringBuilder();

        //pobieranie listy urzadzen

        int r = Pcap.findAllDevs(alldevs, errorbuf);
        if (r == Pcap.NOT_OK || alldevs.isEmpty())
        {
            System.err.println("Can't read list of devices, error is: " +errorbuf.toString());
            return;
        }

    }
}

i don't understand what do with this:

Exception in thread "main" java.lang.UnsatisfiedLinkError: com.slytechs.library.NativeLibrary.dlopen(Ljava/lang/String;)J
        at com.slytechs.library.NativeLibrary.dlopen(Native Method)
        at com.slytechs.library.NativeLibrary.<init>(Unknown Source)
        at com.slytechs.library.JNILibrary.<init>(Unknown Source)
        at com.slytechs.library.JNILibrary.loadLibrary(Unknown Source)
        at com.slytechs.library.JNILibrary.register(Unknown Source)
        at com.slytechs.library.JNILibrary.register(Unknown Source)
        at com.slytechs.library.JNILibrary.register(Unknown Source)
        at org.jnetpcap.Pcap.<clinit>(Unknown Source)
        at sniffer.sniffer.main(sniffer.java:18)

Solution

  • The above exception will be

    Thrown if the Java Virtual Machine cannot find an appropriate native-language definition of a method declared native.

    try to check the path of JDK set properly pointing to correct library of java in buildpath.

    and make sure correct jdk version is installed. no mess up with x86/x64 installs.`