0

次のコマンドを使用してプログラムを実行しようとしています:

java Honey -cp ../../jnetpcap-1.3.0/jnetpcap.jar

タイトルエラーが発生しています:

Exception in thread "main" java.lang.NoClassDefFoundError: org/jnetpcap/Pcap
        at Honey.main(Honey.java:18)
Caused by: java.lang.ClassNotFoundException: org.jnetpcap.Pcap
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 1 more

誰かが私が間違っているかもしれないことを私に指摘できれば、非常に感謝しています。

4

2 に答える 2

2

-cpすべての JVM 実行オプションと同様に、実行するクラスの名前の前に配置した場合にのみ機能します。または、-jarそれを使用してマニフェストされたメインクラスを実行する場合のオプションです。classesname またはname ののすべてのトークンは、引数としてプログラムに-jar渡されます。それを修正すると、クラスパスにjnetpcap jarとクラスの両方を含める必要があることがわかるので、次のようなものが必要です

 jar -cp .:path/to/jnetpcap.jar Honey 
 # on Windows use ; instead of :
于 2015-05-01T06:31:13.197 に答える
1

ネイティブ ライブラリの場所を JVM に明示的に伝える必要があります。

このようなことを試してください

sudo ../jdk1.8.0_45/bin/java -Djava.library.path=/home/leoks/Downloads/jnetpcap-1.3.0 -cp .:jnetpcap.jar ハニー

「ハニー」がどのように見えるか分からないので、代わりにこれを使用しました

http://jnetpcap.com/?q=examples/classic

この特定の例では、いくつかの特別なアクセス許可が必要なため、sudo を使用して実行しました。

この例では、ここから ubuntu 64 ビット用の jnetpcap をダウンロードしました。

http://sourceforge.net/projects/jnetpcap/files/jnetpcap/1.3/jnetpcap-1.3.0-1.ubuntu.x86_64.tgz/download

Oracle JDK 1.8.0_45 と Ubuntu 14.04.2 LTS を使用しました

于 2015-05-01T06:34:37.990 に答える