java中jpcap报错,如何解决?(开发工具-eclipse)

最近在学习抓包,想用java照着网上的代码自己实现一个。于是下载了jpcap,已经把jpcap.jar

导入到eclipse里并将jpcap.dill加入到了bin目录下。然而在运行代码时出现了classnotfoundexception,貌似没有jpcapCaptor?不知道是什么原因导致的。本人java初学者,希望能得到解答,感激不尽!

img

img

我下了一个试了,没问题啊。你是不是装了多个版本的jdk?

JpcapCaptor找不到。把报错的内容全部贴出来看一下,你这应该不完整。

当你通过打开网卡设备得到JpcapCaptor实例后,就可以利用它来捕捉网络数据包了。接下来我们使用回调函数机制进行数据包的获取:

  首先,你要自定义一个类,该类必顺实现PacketReceiver接口,(在事件处理机制雷同)。PacketReciver接口只声名了receivePacket(Packet packet) 方法,所以你要在你定义的类中实现该方法,方法体里写处理接收到的数据包的代码,得到的数据包为型参packet.

 接着,你就可以通过调用JpcapCaptor类的实例的processPacket()或loopPacket()来开始接收数据包。开始接收数据包后,当接收到数据包时就会回调实现PacketReceiver接口的类的receivePacket的方法,使理接收到的数据包。

 public int processPacket(int n , PacketRecevier handler);

 参数1  类型   int                           解释:一次接收包的个数(个数到时到产生回调)

 参数2  类型   PacketRecevier   解释:(回调者)事件临听者

 返回值:捕捉到的数据包的个数

 功能:捕捉自定义个数的网络数据包。与loopPacket()方法不同,当接收超时(这个由前面的openDevice()方法的最后一个接收超时参数所决定)该方法立即返回。同样的在非阻塞模式下是,没有数据所可接收,该方法也立即返回。

 public int loopPacket(int n, PacketRecevier handler):

 参数1  类型   int                        解释:一次接收包的个数(个数到时到产生回调)