11

我在使用 Eclipse 和 Windows XP 使用 Java 运行 ZeroMQ 时遇到问题。我已经成功安装了 [我认为] 0MQ 库以及 Java 绑定。我曾经这样做的说明位于此处

构建了两个文件:zmq.jarjzmq.dll。我将jar文件放在我的项目中,它允许代码编译OK。我还将java.library.path设置为 dll 的目录,将 perf 目录添加到我的项目中,并将 libzmq.dll 添加到我的 PATH 中。(全部按照说明)。

我仍然得到以下我无法修复的异常:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\jzmq\lib\jzmq.dll: Can't find dependent libraries

jzmq.dll 还依赖于哪些其他库?我试过将 libzmq.dll 放在任何地方,但这没有帮助。是我试图开始工作的代码示例。

谢谢你。

4

3 回答 3

8

将任何 dll 放入 Windows 根目录或 Windows System32 是紧急解决方案,它只会将您拉入 Dll HELL。

您需要做的是在System PATH中添加 ZQM 二进制路径。

我在一个小时内编译了一个 64bit ZMQ & JZMQ,这是我的文件夹结构:

c:\ZMQ\bin  
 --- jzmq.dll、libzmq.dll
c:\ZMQ\lib
 --- ZMQ.jar

这是步骤:

  1. 将binray路径添加到系统环境中,详细步骤是控制面板--系统--高级设置,在弹出的选项卡中,找到'advance'--'环境变量'---找到'PATH' 'system variabls' 并在值中添加 C:\ZMQ\bin

  2. 打开 dos 提示符,然后键入“where jzmq.dll”(我不确定 XP 中是否存在 where.exe)以确认它现在是否在 PATH 中。

  3. 启动Eclipse,打开你的项目,右击你的项目名称,在菜单中选择'build path -- add external archives' 选择C:\ZMQ\lib\zMQ.jar。

全部做完!

在我的电脑中,该示例运行正常。

于 2012-11-28T03:20:34.347 回答
3

您应该将 libzmq.dll 复制到 java.library.path 指向的位置并使用它:

System.loadLibrary("libzmq")

原因是 jzmq 依赖于 libzmq,所以必须先加载 libzmq。

于 2013-02-16T17:51:49.097 回答
1

我也刚遇到这个问题。我通过将 jzmq.dll 和 libzmq.dll 放入 System32 文件夹找到了解决方法。我不喜欢将其作为永久解决方案,但它暂时有效。

于 2012-07-13T04:02:44.807 回答