如何用Java运行ZeroMQ?

时间:2012-07-12 15:45:29

标签: java eclipse zeromq

我在使用Eclipse和Windows XP运行ZeroMQ时出现问题。我已成功安装[我认为] 0MQ库以及Java绑定。我过去所做的说明位于 here

构建了两个文件: zmq.jar jzmq.dll 。我将jar文件放在我的项目中,这允许代码编译好。我还将 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放在任何地方,但这没有帮助。 This 是我正在努力工作的代码示例。

谢谢。

3 个答案:

答案 0 :(得分:8)

将任何dll放在Windows root或Windows System32中都是难以解决的问题,只需将您拉入Dll HELL。

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

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

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

这是步骤:

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

  2. 打开dos提示符,输入'where jzmq.dll'(我不确定XP中是否存在where.exe)以确认它是否在PATH中。

  3. 启动Eclipse,打开项目,右键单击项目名称,然后在菜单“构建路径 - 添加外部存档”中选择C:\ ZMQ \ lib \ zMQ.jar。

  4. 全部完成!

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

答案 1 :(得分:3)

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

System.loadLibrary("libzmq")

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

答案 2 :(得分:1)

我刚刚遇到过这个问题。我通过将jzmq.dll和libzmq.dll放入System32文件夹找到了解决方法。我不认为这是一个永久性的解决方案,但它暂时起作用。