2

デバイスのリストを取得したいので、単純なスニファを作成しようとしています。ここに私の機能がありますが、機能しません。このライブラリで作業を開始したばかりなので、何が問題なのかわかりません。

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;
        }

    }
}

これで何をするのかわかりません:

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)
4

2 に答える 2

1

Eclipse の[構成] ( [デバッグ]または[実行] ) で、 [引数] タブの [ VM 引数] で次を使用します。

-Djava.library.path=<path to jnetpcap.dll or libjnetpcap.so>
于 2014-07-10T14:03:29.023 に答える
0

上記の例外は、

Java 仮想マシンがネイティブと宣言されたメソッドの適切なネイティブ言語定義を見つけられない場合にスローされます。

buildpathでJavaの正しいライブラリを正しく指しているJDKセットのパスを確認してください。

正しいjdkバージョンがインストールされていることを確認してください。x86/x64 のインストールで混乱することはありません。

于 2014-05-25T19:24:26.770 に答える