我试图使用以下命令运行一个程序:
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
如果有人能向我指出我可能做错了什么,我将非常感激。
发布于 2015-04-30 22:34:37
您必须显式地告诉JVM本地库在哪里。
试试像这样的东西
sudo ./ -cp 1.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。
我使用了Oracle 1.8.0_45和Ubuntu14.04.2LTS
发布于 2015-04-30 22:31:13
-cp
和所有JVM运行选项一样,只有将其放在要运行的类的名称之前,或者如果您使用它运行已显示的主类时,-jar
选项才能工作。类名或-jar
名称之后的任何标记都作为参数传递给程序。修复后,您将发现需要类路径同时包含jnetpcap和类(Es),因此需要类似的内容
jar -cp .:path/to/jnetpcap.jar Honey
# on Windows use ; instead of :
https://stackoverflow.com/questions/29982024
复制相似问题