记录jpcap在Ubuntu&Window下的配置过程
众所周知,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下的配置过程的更多相关文章
- 记录一下emacs在window下的配置过程
今天重装WIN7 64位新系统,装完发现emacs无法加载以前的插件了.网上搜一下才记起来,emacs默认读取的配置文件在c盘,在这个原始配置文件中还需要添加一些路径转换的语句才能转到用户自己的配置文 ...
- Tomcat7.0.22在Windows下详细配置过程
Tomcat7.0.22在Windows下详细配置过程 一.JDK1.7安装 1.下载jdk,下载地址:http://www.oracle.com/technetwork/java/javase/do ...
- Ubuntu Linux下如何配置Android开发环境
下载和安装Win7系统Android开发环境中讲了怎样在Win7系统中安装Android开发环境,那么怎样在Linux系统中配置Android开发环境呢?本篇文章就将演示如何使用Eclipse.And ...
- window下xampp配置多端口、多站点步骤
好些日子没整理知识了,许多新东西不整理出来时间一长就淡忘了.看来以后得继续坚持整理. 配置XAMPP多端口.多站点如下步骤: 多端口: (一个域名下同时配置多个端口,从而达到访问不同程序) 效果例如: ...
- Ubuntu环境下手动配置zookeeper
配置zookeeper 注意:因为是单机伪分布式配置,故同一机器上有3个server zookeeper文件格式如下 home---zookeeper---server0---zookeeper | ...
- 【python3】window下 vscode 配置 python3开发环境
本文以python3.7 为例 一 下载python3 url : https://www.python.org/downloads/windows/ 提示: 安装过程中.记得勾选 添加环境变量 二 ...
- Ubuntu 15 下 Qt 配置mysql链接及基本操作
序 最近需要在Linux下做一个unix网络编程项目,选择了Ubuntu 最新版本15.04 : 开发环境:Qt 5 数据库: MySQL 安装Qt 和 MySQL 简要介绍一下软件的安装! 安装Qt ...
- LinuxMint(同Ubuntu)下安装配置NFS设置共享目录
假设有两台机器, 机器A:10.68.93.2 机器B:10.68.93.3 现在需要将机器A上的/opt/nfsshare共享出去,然后挂载到机器B的/nfsshare目录下. 1. 在机器A上: ...
- Ubuntu环境下手动配置ElasticSearch0.90.5
1 下载elasticsearch-0.90.5 2 修改配置(可选) 修改内存:(可选) bin/elasticsearch.in.sh中: ES_MIN_MEM ES_MAX_MEM 修改搜索引擎 ...
随机推荐
- function field , store={}...
def _get_product_state(self,cr,uid,ids,fields,arg=None,context=None): res={} dic=dict( self.pool.get ...
- Python Tutorial 学习(七)--Input and Output
7. Input and Output Python里面有多种方式展示程序的输出.或是用便于人阅读的方式打印出来,或是存储到文件中以便将来使用.... 本章将对这些方法予以讨论. 两种将其他类型的值转 ...
- MySQL zip版安装配置
文章出处:http://www.cnblogs.com/winstic/,请保留此连接 这段时间在学习Python 数据库操作知识,简单整理MySQL zip文件安装方法 下载 在MySQL官网htt ...
- Computational Methods in Bayesian Analysis
Computational Methods in Bayesian Analysis Computational Methods in Bayesian Analysis [Markov chain ...
- 通过CreateOleObject控制IE
//第二种方法可以有更多控制procedure TForm1.Button1Click(Sender: TObject);procedure OpenInIE(aURL: string);//need ...
- mysql 监控长事务
mysql> desc information_schema.innodb_trx -> ; +----------------------------+----------------- ...
- 数据结构(线段树):BZOJ 3126: [Usaco2013 Open]Photo
3126: [Usaco2013 Open]Photo Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 222 Solved: 116 Descrip ...
- Manacher Ural 1297 Palindrome
1297. Palindrome Time limit: 1.0 secondMemory limit: 64 MB The “U.S. Robots” HQ has just received a ...
- QTP中FSO的使用
序 FSO即文件系统对象(File System Object),在测试工作中有广泛的应有,它可以帮助我们自动生成测试目录,写日志,测试报告等.FSO有对象有很多属性和方法,今天只介绍几个常用的. 创 ...
- Nodejs in Visual Studio Code 07.学习Oracle
1.开始 Node.js:https://nodejs.org OracleDB: https://github.com/oracle/node-oracledb/blob/master/INSTAL ...