这几天因为项目原因,要用到jpcap。jpcap本身是很小的东西,但一不小心配置就搞死你。烦了一下午,现在速度记录下来,免得以后悲剧重现。
最基本的配置我就随便说一下,反正这个网上一大把。首先下载jpcap包,有两个文件,分别是jpcap.dll和jpcap.jar,这两个文件分别放到JAVA安装路径/jre1.6.0_06/bin和JAVA安装路径/jre1.6.0_06/lib/ext下。因为jpcap是基于wincap设计,而不是直接与底层硬件交互的,所以你还要装一个winpcap,网上下一个,大把。然后在myeclipse里配置,window->preferences->java->installs JRES,选中你用的JRE,点edit,再点ADD EXTERNAL JARS,把放在JAVA安装路径下的jpcap.jar加进来。
如果顺利的话,到这步就OK了,但事情往往是不顺利的。
第一个错误:
加进来后,死活提示项目有错误,明明一切包都放好了,还是不行。网上找了很多,都不靠谱,有的甚至写的很深奥。最后把JRE删掉再重新导入,就好了。方法:右键点你的项目->properties->Java buildpath->remove,然后再导入。
第二个错误:
错误提示是“no dependence libray”,这个简单,90%是你没装winpcap。
第三个错误:
这是最常见的, java.lang.UnsatisfiedLinkError:no jpcap in java.library.path。解决这个错误的办法说实在的,估计有很多,在这里我只说我的。
这个错误提示是在java的library路径里找不到jpcap.dll,于是在JAVA程序里找一下library的path:
System.out.println(System.getProperty("java.library.path"));
发现路径很多,包括system32,于是我把jpcap.dll复制到system32,还是不行。继续复制到别的路径,依然不行。
我又在run配置里加入-Djava.library.path=C:/WINDOWS/system32,还是不行。就在我一筹莫展时,我发现那JRE包路径是在:
“D:/Program Files/Genuitec/Common/binary/com.sun.java.jdk.win32.x86_1.6.0.013/”
于是顺藤摸瓜进去,发现有个jre文件夹,里面有bin和lib,就又把dll之类的复制过去,这下可以了,顺利编译。