CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

Jpcap获取本地Tcpdump包出错,帮忙看看

楼主luzcn(给我一个家)2005-11-03 14:41:14 在 Java / J2SE / 基础类 提问

import   jpcap.*;  
  import   jpcap.Packet;//now   the   packet   is   jpcap  
  import   jpcap.JpcapHandler;  
  import   net.sourceforge.jpcap.capture.PacketCapture;  
  import   net.sourceforge.jpcap.capture.PacketCaptureCapable;  
  import   net.sourceforge.jpcap.capture.RawPacketListener;  
  import   net.sourceforge.jpcap.net.RawPacket;  
   
   
  public   void   openCaptureFile()  
  {  
  packetcapture   =   new   PacketCapture();  
   
  System.out.println("Open   Capture   File   for   Jpcap");  
  try  
  {  
  packetcapture.openOffline("capture_2");  
  System.out.println("Open   success");  
  }  
  catch(Exception   err)  
  {  
  System.out.println("Open   fail");  
  err.printStackTrace();  
   
  }  
  我想用这段代码来打开这个本地文件,但是出来这样的错误:  
   
  Exception   in   thread   "main"   java.lang.UnsatisfiedLinkError:   openOffline  
  at   net.sourceforge.jpcap.capture.PacketCapture.openOffline(Native   Method)  
  at   net.sourceforge.jpcap.capture.PacketCapture.openOffline(PacketCapture.java:72)  
  at   ReadJPcapFile.openCaptureFile(ReadJPcapFile.java:51)  
   
  不明白是哪里的问题。  
  还望大家帮帮忙,再不写出来导师要解雇我了。  
  问题点数:100、回复次数:3Top

1 楼keiy()回复于 2005-11-03 15:39:31 得分 0

java.lang.UnsatisfiedLinkError:   只有当包不完整或缺少dll(windwos)/so(linux)才会发生,我没有用   jpcap,请检查你的   jpcap是否完整,检查系统的classpath和path  
  Top

2 楼thomaslw(void)回复于 2006-03-05 01:13:50 得分 0

从你的类库命名上看应该是0.1.16  
   
  我从类库中查函数  
  你出错的地方,这是这个包中的内容   0package   net.sourceforge.jpcap.capture;  
       
  public   void   openOffline(String   fileName)   throws   CaptureFileOpenException   {  
          openOffline(instanceNum,   fileName);     //这里是你编译器说的72行  
    }  
   
  public   native   void   openOffline(int   instance,   String   fileName)  
          throws   CaptureFileOpenException;  
   
  \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\  
   
  这个函数是有重载的,而其中一个通过JAVA   Native   Interface调用了DLL  
  追根溯源我们找到jpcap.c文件中存在的此函数的内容  
   
  /*  
    *   Open   a   tcpdump-formatted   "savefile"   for   reading   captured   packets    
    *   as   an   alternative   to   capturing   packets   off   the   wire.  
    *  
    *   JNI   PacketCapture.openOffline()  
    */  
  JNIEXPORT   void   JNICALL  
  Java_net_sourceforge_jpcap_capture_PacketCapture_openOffline  
      (JNIEnv   *env,   jobject   object,   jint   instance,   jstring   jfileName)  
  {  
      const   char*   fileName;  
      char   ebuf[PCAP_ERRBUF_SIZE];  
      jfieldID   fid;  
      jclass   cls;  
      int   linkType;  
   
      if(jfileName   ==   NULL)   {  
          throwException(env,   FILE_OPEN_EXCEPTION,   "null   file   name   specified"   );  
          return;  
      }  
   
      fileName   =   env->GetStringUTFChars(jfileName,   0);  
      PD[instance]   =   pcap_open_offline(fileName,   ebuf);  
   
      if(PD[instance]   ==   NULL)   {  
          throwException(env,   FILE_OPEN_EXCEPTION,   ebuf);  
          return;  
      }  
   
  ========================================================================  
  写这么多,虽然没有直接解决问题,但是UnsatisfiedLinkError确实是非静态错误。  
  也就是说如果不是dll版本不符,调用出错。那么就是重载时造成的问题  
  不妨试一下使用JNI的这个函数:openOffline(int   instance,   String   fileName)  
  相信你都写到这个份上了,应该不是dll没搞对。。  
   
  导师要解雇你???看来我是要考虑一下是不是考研了。。。可以交流一下吗?Top

3 楼leejf000()回复于 2006-03-10 02:38:06 得分 0

net.sourceforge   and   jpcap是不一样的版本,你不应该混在一起用。Top

相关问题

  • 在获取TEXTPTR时, 出错...
  • 获取字符出错,急,在线等
  • pro*c的出错处理如何获取出错的sql语句?
  • 用TransformerFactory获取XSL时出错,为什么?
  • 为什么获取浏览器的类型等出错?
  • HttpWebRequest发送postdata并获取返回出错了(高人指教)
  • 获取计算机名和IP出错,大虾帮忙
  • 用js获取父页url出错,请高手帮忙
  • JSP中,怎么获取SQL SERVER出错的信息~~
  • 用OpenSchema获取表名的时候出错

关键词

  • sourceforge
  • 函数
  • dll
  • jpcap
  • packetcapture
  • openoffline
  • capture
  • 出错
  • native
  • packets

得分解答快速导航

  • 帖主:luzcn

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo