NoClassDefFoundError 与类路径

NoClassDefFoundError with classpath

我正在尝试 运行 使用以下命令的程序:

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

如果有人能指出我可能做错的地方,我将不胜感激。

-cp 和所有 JVM 一样 运行-options 仅当你把它放在 之前 你想要 class 的名称时才有效 运行,或者 -jar 选项,如果你使用它来 运行 显化的 main-class。 classsname 或 -jar name 之后的任何标记都作为参数传递给您的程序。一旦你解决了这个问题,你会发现你需要你的 classpath 来包含 jnetpcap jar 和你的 class(es),所以你需要像

这样的东西
 jar -cp .:path/to/jnetpcap.jar Honey 
 # on Windows use ; instead of :

您必须明确告诉 JVM 本地库在哪里。

尝试这样的事情

sudo ../jdk1.8.0_45/bin/java -Djava.library.path=/home/leoks/Downloads/jnetpcap-1.3.0 -cp .:jnetpcap.jar 亲爱的

我不知道"Honey"长什么样,所以我用这个代替

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