【发布时间】:2019-11-30 05:01:50
【问题描述】:
我遇到了 jpcap 和 winpcap 的问题。我以前曾经运行过它,但我不知道现在发生了什么。我已经安装了winpcap并下载了jpcap。在示例代码的第一次运行中,我收到以下错误。
PacketCapture: loading native library jpcap.. ok
Exception in thread "main" java.lang.UnsatisfiedLinkError: net.sourceforge.jpcap.capture.PacketCapture.findDevice()Ljava/lang/String;
at net.sourceforge.jpcap.capture.PacketCapture.findDevice(Native Method)
at com.oz.test.Example1.<init>(Example1.java:38)
at com.oz.test.Example1.main(Example1.java:55)
为了让愿意帮助的人更容易,
1)我检查了jpcap.dll在windows,system32文件夹下(我应该检查它是否注册?)
2) jpcap.jar 位于 C:\WINDOWS\Sun\Java\lib\ext 下。 jpcap已经自动放到这个文件夹下了,我没选。 (但我的 java 是从 C:\Program Files\Java\jdk1.6.0_18 运行的)
3)我已经通过eclipse实现了jar文件。
我几乎检查了所有内容。应该有路径问题或类似的东西。任何熟悉 jpcap/winpcap 的人可以帮忙吗?
提前谢谢..
【问题讨论】:
-
您是否按照安装说明进行操作?上面写着“如果您有旧版本的Jpcap,请在安装新版本之前先将其卸载。如果您忘记卸载旧版本,请从您的系统中搜索'Jpcap.dll'和'jpcap.jar',删除它们,然后安装新版本。”你清理旧版本了吗?
-
@g051051 我确实按照说明进行操作。我卸载了以前的版本并重新安装了它们。我注意到 jpcap.jar 文件自动放置在 C:\WINDOWS\Sun\Java\lib\ext 下(这里根本没有安装 java),但是我的 java 在另一个路径下。然后,我检查了 System.getProperty("java.library.path") 有“C:\WINDOWS\Sun\Java\bin”。你认为,我将我的 jpcap.jar 放在 C:\WINDOWS\Sun\Java\lib\ext 下,因为路径 (C:\WINDOWS\Sun\Java\bin) 在“java.library.path”中?如果你这么认为,我怎样才能从我的“java.library.path”中删除这个路径?感谢您的建议。
-
检查 JAVA_HOME 的环境设置。确保它指向您的正确版本。如果错误,请修复它,然后重新安装并重试。
-
@user403295 我对此感到惊讶。假设您使用的是您的帖子中指出的 sourceforge JPcap,我已经参与其中,我不知道它附带安装程序,或者安装“。”以外的其他内容的说明。
-
@EJP 老实说,我只是搜索了一下。我以前用过那个jar文件,但是我已经有一段时间忘记了设置。所以我想,如果有安装程序,它可能会做我需要的设置。我现在看 JNetPcap 看起来更有趣。我喜欢听听你的建议,哪个更好。谢谢。