众所周知,Java虽然在TCP/UDP传输方面给予了良好的定义,但是标准库java.net对于网络层以下的控制是无能为力的。Jpcap就是为了处理这一问题而出现的中间件。它调用底层的winpcap/libpcap来实现对数据链路层的控制,并给Java语言提供一个公共的接口,从而实现了平台无关性。

  本文不涉及到介绍Jpcap的应用,只是简单地记录一下在Ubuntu & Windows 下安装及配置Jpcap的过程。

  学习Jpcap的使用,请转到 jpcap入门指南

  一、Ubuntu下配置过程

  前置条件,确保安装有build-essential 和 libpcap包

  build-essential 可以直接用 apt-get 安装。而libpcap则不可以,我参考的这一博客Ubuntu 14.04下安装libpcap

  下面开始安装Jpcap,首先下载源码:

  git clone --recursive https://github.com/mgodave/Jpcap.git

  编译:

  在./Jpcap/src/main/c中,执行

  make

  将编译得到的文件放到可寻址的路径:

  将生成的libjpcap.so文件拷贝到 $JAVA_HOME/jre/lib/<arch>目录下。

  注:arch对应计算机架构,如i386,amd64,sparc等

    $JAVA_HOME对于Debian系列Linux一般指 /usr/lib/jvm/default-java 目录

    如果是Java 6版本,则将libjpcap.so拷到 /usr/java/packages/lib/exf中。

  将 ./Jpcap/lib/jpcap.jar 拷到 $JAVA_HOME/lib/目录下。

  最后需要保证$JAVA_HOME/lib、$JAVA_HOME/jre/lib在CLASSPATH路径中(一般配置java时候,都已添加。)

  然后,顺利的话,应该已经可以编译、运行有调用jpcap库的java程序了。

  运行中可能会遇到的错误:

  libpcap.so.1 cannot open shared object file no such file or directory

  对于这个问题,我们可以发现 libpcap.so.1文件就在/usr/local/lib目录下,然而程序在执行libjpcap.so中调用libpcap的代码是无法找到该文件,这里我们需要手动添加其到 /etc/ld.so.conf 中。

  在 ld.so.conf, 添加两行:

  /usr/local/lib

  /usr/lib

  然后执行:

  ldconfig

  这时再运行程序应该不会出现该错误了。

  couldn't find default device: no suitable device found

  原因:没有以root身份运行。

  二、Windows下安装及配置Jpcap

  前置条件,确保安装有winpcap。

  有两种方式:

  第一种

  运行JpcaSetup-0.7.exe (Binary installer),一路next,最后选择Jpcap.dll 和 jpcap.jar 的安装位置,一般情况下,Jpcap.dll 安装在 C:\Windows\System32 目录下, jpcap.jar 安装在 C:\Windows\Sun\Java\lib\ext 目录下。

  然后为了方便Java程序中的调用,我们还需要将Jpcap.dll 复制到 jre 路径下的 bin 文件夹下, 将 jpcap.jar 复制到 jre路径下的 lib\ext 文件夹下。

  第二种

  直接下载jpcap包,有两个文件,分别是jpcap.dll和jpcap.jar,这两个文件分别放到JAVA安装路径/jre1.6.0_06/bin和JAVA安装路径/jre1.6.0_06/lib/ext下。这种方法注意可能需要自己配置程序的java.library.path.

  最后,在你的IDE中导入外部jar。

  运行中可能会遇到的错误:

  no dependence libray

  原因:很有可能没有安装winpcap

  java.lang.UnsatisfiedLinkError:no jpcap in java.library.path

  原因:java在library path 中找不到 jpcap.dll

  解决:把jpcap.dll复制到system32

  或者是在run配置里加入-Djava.library.path=(jpcap.dll所放置的地方)

  

  记录一下,以防将来忘记。

  以上。

  

参考:http://blog.csdn.net/pdcxs007/article/details/48691009

   http://blog.csdn.net/loverooney/article/details/38543191

   http://ohyeahbbs.blog.51cto.com/1775490/592573

   http://www.bianceng.cn/Programming/Java/200705/1834.htm

   http://www.cnblogs.com/acmy/archive/2012/02/04/2337955.html

   http://blog.csdn.net/fykhlp/article/details/6159195

   

记录jpcap在Ubuntu&Window下的配置过程的更多相关文章

  1. 记录一下emacs在window下的配置过程

    今天重装WIN7 64位新系统,装完发现emacs无法加载以前的插件了.网上搜一下才记起来,emacs默认读取的配置文件在c盘,在这个原始配置文件中还需要添加一些路径转换的语句才能转到用户自己的配置文 ...

  2. Tomcat7.0.22在Windows下详细配置过程

    Tomcat7.0.22在Windows下详细配置过程 一.JDK1.7安装 1.下载jdk,下载地址:http://www.oracle.com/technetwork/java/javase/do ...

  3. Ubuntu Linux下如何配置Android开发环境

    下载和安装Win7系统Android开发环境中讲了怎样在Win7系统中安装Android开发环境,那么怎样在Linux系统中配置Android开发环境呢?本篇文章就将演示如何使用Eclipse.And ...

  4. window下xampp配置多端口、多站点步骤

    好些日子没整理知识了,许多新东西不整理出来时间一长就淡忘了.看来以后得继续坚持整理. 配置XAMPP多端口.多站点如下步骤: 多端口: (一个域名下同时配置多个端口,从而达到访问不同程序) 效果例如: ...

  5. Ubuntu环境下手动配置zookeeper

    配置zookeeper 注意:因为是单机伪分布式配置,故同一机器上有3个server zookeeper文件格式如下 home---zookeeper---server0---zookeeper | ...

  6. 【python3】window下 vscode 配置 python3开发环境

    本文以python3.7 为例 一 下载python3 url : https://www.python.org/downloads/windows/ 提示: 安装过程中.记得勾选  添加环境变量 二 ...

  7. Ubuntu 15 下 Qt 配置mysql链接及基本操作

    序 最近需要在Linux下做一个unix网络编程项目,选择了Ubuntu 最新版本15.04 : 开发环境:Qt 5 数据库: MySQL 安装Qt 和 MySQL 简要介绍一下软件的安装! 安装Qt ...

  8. LinuxMint(同Ubuntu)下安装配置NFS设置共享目录

    假设有两台机器, 机器A:10.68.93.2 机器B:10.68.93.3 现在需要将机器A上的/opt/nfsshare共享出去,然后挂载到机器B的/nfsshare目录下. 1. 在机器A上: ...

  9. Ubuntu环境下手动配置ElasticSearch0.90.5

    1 下载elasticsearch-0.90.5 2 修改配置(可选) 修改内存:(可选) bin/elasticsearch.in.sh中: ES_MIN_MEM ES_MAX_MEM 修改搜索引擎 ...

随机推荐

  1. Linux之Vim编辑器使用

    vim文本编辑器用于建立 编辑 显示文本文件,vim没有菜单,只有命令 在windows 平台下可使用gvim进行编写 Vim三种工作模式: 常有命令: 1.INSERT插入命令 i 在光标前插入 I ...

  2. js 代码记录

    window.screen.availWidth 返回当前屏幕宽度(空白空间) window.screen.availHeight 返回当前屏幕高度(空白空间) window.screen.width ...

  3. du和df不一致的解决方法

    df:disk free,统计的是当前系统中空闲的磁盘du:disk usage,统计的是正在使用的空闲的磁盘.如果一个文件被删除之后,使用这个文件的进程未重启,则会出现df和du不一致的情况. 解决 ...

  4. hiho一下103周 平衡树·Treap

    平衡树·Treap 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho:小Hi,我发现我们以前讲过的两个数据结构特别相似. 小Hi:你说的是哪两个啊? 小Ho:就是二 ...

  5. java和javascript获取word文档的书签位置对比

    1.javascript:把IE浏览器的activex都打开,使用如下网页,可以看到书签顺序和位置: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...

  6. BZOJ 2432 兔农

    Description 农夫栋栋近年收入不景气,正在他发愁如何能多赚点钱时,他听到隔壁的小朋友在讨论兔子繁殖的问题. 问题是这样的:第一个月初有一对刚出生的小兔子,经过两个月长大后,这对兔子从第三个月 ...

  7. Can deep learning help you find the perfect girl?

    Can deep learning help you find the perfect girl? One of the first things I did when I moved to Mont ...

  8. Struts2拦截器总结<转>

    由于项目中在登录跳转到其他应用程序模块的时候有用到拦截器,因此查看了一下相关资料. 原文地址:http://blog.csdn.net/sendfeng/article/details/4248120 ...

  9. 自己动手实现Queue

    前言: 看到许多面经说,有时候面试官要你自己当场用模板写出自己的vector容器.于是,我也琢磨着怎么自己动手写一个,可是本人才刚刚学C++模板编程不久,会的不多.不过,我恰好在C++ Primer上 ...

  10. COJ 3007 Mr.Yang的小助手

    传送门:http://oj.cnuschool.org.cn/oj/home/problem.htm?problemID=1037 试题描述: 信息学社团已经逐渐发展壮大,成员也越来越多.现在,有n个 ...