我正在用Java编程,是jpcap的新手。我已经为Microsoft Windows安装了Jpcap。我的电脑在Windows 7平台上运行。我有一个Eclipse Indigo IDE。当我使用 Eclipse Indigo IDE 创建一个新的 Java 项目时,我创建了一个带有 main 方法的类,并复制并粘贴了 jpcap 教程中的代码。
package PacketCapturing;
import jpcap.*;
import jpcap.packet.*;
public class NetworkInterfaceList {
public static void main(String args[]){
//Obtain the list of network interfaces
NetworkInterface[] devices = JpcapCaptor.getDeviceList();
//for each network interface
for (int i = 0; i < devices.length; i++) {
//print out its name and description
System.out.println(i+": "+devices[i].name + "(" + devices[i].description+")");
//print out its datalink name and description
System.out.println(" datalink: "+devices[i].datalink_name + "(" + devices[i].datalink_description+")");
//print out its MAC address
System.out.print(" MAC address:");
for (byte b : devices[i].mac_address)
System.out.print(Integer.toHexString(b&0xff) + ":");
System.out.println();
//print out its IP address, subnet mask and broadcast address
for (NetworkInterfaceAddress a : devices[i].addresses)
System.out.println(" address:"+a.address + " " + a.subnet + " "+ a.broadcast);
}
}
在 Eclipse Indigo IDE 的 Java 代码编辑器上,我看到为 NetworkInterface 类、NetworkInterface 设备、对象及其属性变量标记了红线。
当我将鼠标悬停在红色标记上时,我看到此错误消息:
Access restriction: The type NetworkInterface is not accessible due to restriction on required library C:WindowsSunJavalibextjpcap.jar
当我运行 Java 程序时,没有抛出编译错误,Java 控制台能够正确显示输出。为什么会这样??有没有办法在 Java 编辑器上调用 Eclipse Indigo IDE 上的 jpcap 库时删除红色标记?是因为我没有安装适用于Windows的winpcap吗?
我遇到了完全相同的问题,我花了一段时间才找到解决方案。希望这有帮助。
-
你必须认识到Jpcap是32位的,你很可能在Windows 7上运行64位版本的Eclipse。确保您为此运行 32 位 Eclipse。
-
转到 Jpcap 下载部分,将文件 jpcap-0.6.zip 和 JPcapSetup-0.6.exe 放在一个文件夹中。解压缩并执行它们。
-
将 Jpcap.dll 文件复制到 C:\Windows\System32 文件夹
启动Eclipse,创建一个新项目,创建一个新 包,创建一个新类,编写代码。
右键单击项目名称 --> 构建路径 --> 配置构建路径 ... --> Java 构建路径 --> 添加外部 JAR...
添加 jpcap.jar 文件。
运行程序。
从 NetBeans 尝试,如果需要安装,请尝试手动导入库。 JPCAP.jar