程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 記錄jpcap在Ubuntu&Window下的配置過程,記錄jpcapUbuntu

記錄jpcap在Ubuntu&Window下的配置過程,記錄jpcapUbuntu

編輯:JAVA綜合教程

記錄jpcap在Ubuntu&Window下的配置過程,記錄jpcapUbuntu


  眾所周知,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

   

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved