之前在windows上跑的没问题,如今须要在Linux上运行,谁知道有这么多坑要去填,如今记录一下。linux
首先须要安装libcap,安装步骤;我运行的Linux是ubuntugit
libpcap 是unix/Linux 平台下的网络数据包捕获函数包,github
大多数网络监控软件都以它为基础。json
Libpcap 能够在绝大多数类unix 平台下工做.ubuntu
Libpcap 应用程序框架vim
Libpcap 提供了系统独立的用户级别网络数据包捕获接口,并充分考虑到应用程序的可移植性。Libpcap 能够在绝大多数类unix 平台下工做,在windows 平台下,一个与libpcap 很相似的函数包 winpcap 提供捕获功能,其官方网站是http://winpcap.polito.it/ 。windows
1,安装GCC。(ubuntu默认安装了GCC)网络
命令:sudo apt-get install build-essential架构
写一个hello程序测试下:框架
#include <stdio.h>
int main(void)
{
printf("Hello, world!/n");
return 0;
}
假定该代码存为文件‘hello.c’ 。
要用 编译该文件,使用下面的命令: $ gcc -Wall hello.c -o hello
用./hello执行就会显示Hello, world!;
2.编译GNU M4
这个是编译flex必备的环境,不然会提示“GNU M4 1.4 is required”的错误
打开网址:ftp.gnu.org/gnu/m4/ 下载 GNU M4最新版软件包,经过 tar zxvf 命令解压文件,进入M4的目录,用命令ls,就会发现有个可执行文件configure,而后依次执行
./confugure
(sudo)make
(sudo)make install.
这样,GNU M4就编译安装好了。
3.编译flex(version 2.5.33)
没有flex,直接安装libpcap会提示“Your operating system's lex is insufficient to compile libpcap”错误。
打开网址:flex.sourceforge.NET/ 下载 flex最新版软件包,经过 tar zxvf 命令解压文件,进入flex的目录,用命令ls,就会发现有个可执行文件configure,而后依次执行
./confugure
(sudo)make
(sudo)make install.
这样,flex就编译安装好了
4.编译bison(version 2.3)
在安装flex后直接安装libpcap会提示“don't have both flex and bison;reverting to lex/yacc”错误,前面安装的是flex,就须要搭配bison
打开网址:ftp.gnu.org/gnu/bison/ 下载 bison最新版软件包,经过 tar zxvf 命令解压文件,进入bison的目录,用命令ls,就会发现有个可执行文件configure,而后依次执行
./confugure
(sudo)make
(sudo)make install.
这样,bison就编译安装好了
5.编译libpcap
以上4步安装好了。就到www.tcpdump.org/ 下载libpcap的最新版。而后解压文件,进入到该目录。用ls命令也能发现有个可执行文件configure,而后依次执行命令:
./confugure
(sudo)make
(sudo)make install.
这样,libcap就编译安装好了
接下来就是须要安装jpcap了,不像windows同样直接下载jar跟dll文件就好了,这里面还须要本身下载编译
(1)在系统中查找这个文件(固然要保证系统中已经有这个.so文件,只是查找路径没有设置正确而已):
sudo find / -name libjpcap.so
结果:/home/liu/Desktop/jsoncpp-src-0.5.0/libs/linux-gcc-4.6/libjson_linux-gcc-4.6_libmt.so
(2)将.so文件路径的目录添加到/etc/ld.so.conf
sudo vim /etc/ld.so.conf
文件末尾新添加一行,/home/liu/Desktop/jsoncpp-src-0.5.0/libs/linux-gcc-4.6
(3)使得修改生效
sudo /sbin/ldconfig
使用命令:
Git clone --recursive https://github.com/mgodave/Jpcap.git
将源文件都保存在了Jpcap的文件夹里。
在目录Jpcap/src/main/c
中,执行:
make
注:应该确保安装有build-essential
和libpcap
包,因为这些包通常都已经有了,因此没有列在过程当中。
将生成的libjpcap.so
拷贝到目录:$JAVA_HOME/jre/lib/<arch>
目录中。其中,arch对应的是计算机架构,如i386
、sparc
、amd64
等等。
移动这个目录下以后就能够进行开发测试了。