最美好的事情莫过于栽跟头,停下来填好坑后,告诉后来人:小心,这里有毒!
在Windwos下安装jnetpcap比较简单,请参考博主的这篇博客:
但是在linux下出现的 ”异常 / 报错 / 警告“ 就真的是千奇百怪了:
比如最常见的两个报错:
》java.lang.UnsatisfiedLinkError: no jnetpcap in java.library.path
》jnetpcap com.slytechs.library.NativeLibrary.dlopen(Ljava/lang/String;)J
博主从以下几个方面开始填坑啦~啦啦啦:
- Linux下libpcap的安装(jnetpcap第一步)
- 安装jnetpcap
- 编辑器(intellij idea / ecplise)的配置
一. Linux下libpcap的安装
我写了一个一键安装的脚本,欢迎大家下载:
下载后执行下面的操作后,就完成安装了:
》》sudo add_libpcap.sh
》》输入用户密码
如果想要了解具体细节,请参考这篇博客,写的真心不错:
其中要注意的是安装顺序不要搞错:
- m4
- bison
- flex
- libpcap
对每个安装包都要执行
sudo ./configure #对即将安装的软件进行基础的配置与满足依赖关系的验证
sudo make #编译
sudo make install #安装
如果在安装中出现神奇的报错,就是因为系统之前并没有安装一些底层的东西,大家可以参考这篇博客:
二. 安装jnetpcap
官网链接:jnetpcap.com (但是我始终连不上去,所以下面提供一个jnetpcap的下载地址)
https://sourceforge.net/projects/jnetpcap/files/jnetpcap/1.3/
里面有很多不同的安装文件,因为我是64位的ubuntu17.04的系统,因此我就下载
jnetpcap-1.3.0-1.ubuntu.x86_64.tgz
(注意:jnetpcap已经有了更高版本1.4.x了,但是我至今仍未解决安装1.4.x的时候的各种报错,因此如果不是特殊要求,请安装1.3.0)
下载到本地之后打开安装包,看到这些,就能够进行下一步了:
三. 编辑器的配置
配置编辑器只有两步:
- 为当前项目导入jar包(流程根据编辑器的不同而不同)
- 把共享库(windows下是.dll文件,Linux下是.so文件)导入到jdk中
主流的是ecplise和intellij IDEA,这里我拿我的编辑器intellij IDEA来举例,ecplise的兄弟们可以参考这篇博客:
1.导入jar包:
左上角 File -》Project Structure 点出这个窗口:
左边第二项 - 》中间第一项(就一项)-》右边点一下“+”号 -》选择第一项,点一下
然后找到从刚才的压缩包里提取出来的.jar包(只是刚才图片中显示的压缩包内容中的jnetpcap.jar这个文件):
点击OK后记得在窗口中把小对勾勾选上:
然后第一步就完成了,点击下面的Apply和OK就可以了
2.把共享库(windows下是.dll文件,Linux下是.so文件)导入到jdk中
还是刚才的图片:
这里面有一个libjnetpcap.so文件,把它复制,粘贴到jdk/jre/lib/amd64中去就可以啦:
然后在编辑器中就可以正常的导入jnetpcap的包,并且在运行中不会有各种奇葩报错了
如果任性的下载了jnetpcap1.4.x的朋友们可能会发现,里面有两个.so的文件,即便全部放在lib库中依旧是该怎么报错怎么报。。。。这就很尴尬了。。