【问题标题】:java jpcap java.lang.UnsatisfiedLinkErrorjava jpcap java.lang.UnsatisfiedLinkError
【发布时间】: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 看起来更有趣。我喜欢听听你的建议,哪个更好。谢谢。

标签: java winpcap jpcap


【解决方案1】:

jpcap.jar 不是 Java 扩展,不应在 lib/ext 中。它应该在你的类路径上的其他地方。 DLL 不是 Windows 的一部分,也不应该在 Windows\system32 中:它应该在您的 PATH 中的其他位置。 Winpcap 应该安装到任何位置。正如 g051051 所说,检查以前版本的卸载情况。

【讨论】:

  • 我不想复制邮件。您能否看看我对 g051051 的回答的回复。提前致谢。
【解决方案2】:

对我来说,问题在于从 sorceforge 下载的 jpcap-0.01.16-win32 附带的 jpcap.dll 版本。我找到了一个 jpcapSetup-0.7.exe.zip 安装程序,它在 system32 文件夹中安装了正确的 dll。

我的 windows 机器是 32 位的,jvm 是 32 位的,但我仍然遇到 jpcap 的问题

我还了解到,如果我将安装程序生成的 dll 复制到另一个目录并卸载该 jpcap 安装程序应用程序,然后将该 dll 放在任何 java_library_path 中,jpcap 将起作用。这意味着jpcap-0.01.16-win32下载附带的dll是有问题的。

注意: 确保已安装 Winpcap_4_1_3.exe。如果未安装,您将收到“找不到依赖库异常”。

确保正确的 jpcap.dll 位于 javapath 环境中的文件夹之一中,或者与您的程序可执行文件或 program.jar 位于同一目录中。如果没有找到,你会得到“No jpcap in java.library.path”异常。

下载 jpcap 安装程序here 下载Winpcap可以从here下载

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 2014-08-06
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多