我正在尝试使用以下命令运行程序:
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
如果有人能指出我可能做错了什么,我将不胜感激。
答案 0 :(得分:2)
-cp
就像所有JVM运行选项一样,只有在之前要运行的类的名称时才有效,或-jar
选项如果你使用它运行表现出来的主类。 classsname或-jar
名称之后的任何标记将作为参数传递给您的程序。一旦你修复了它,你会发现你需要你的类路径包含jnetpcap jar和你的类,所以你需要像
jar -cp .:path/to/jnetpcap.jar Honey
# on Windows use ; instead of :
答案 1 :(得分:1)
您必须明确告诉JVM本地库在哪里。
尝试这样的事情
sudo ../jdk1.8.0_45/bin/java -Djava.library.path = / home / leoks / Downloads / jnetpcap-1.3.0 -cp。:jnetpcap.jar Honey
我不知道" Honey"看起来像,所以我使用了这个
http://jnetpcap.com/?q=examples/classic
对于这个具体的例子,由于它需要一些特殊权限,我使用sudo运行它。
对于这个例子我从这里下载了ubuntu 64位的jnetpcap
我使用的是Oracle JDK 1.8.0_45和Ubuntu 14.04.2 LTS