我在使用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 是我正在努力工作的代码示例。
谢谢。
答案 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
这是步骤:
将binray路径添加到系统环境中,详细步骤为 控制面板 - 系统---提前设置,在弹出选项卡中,找到'advance' - '环境变量'---在'system vairiabls'中找到'PATH'并添加C:\ ZMQ \ bin中的值
打开dos提示符,输入'where jzmq.dll'(我不确定XP中是否存在where.exe)以确认它是否在PATH中。
启动Eclipse,打开项目,右键单击项目名称,然后在菜单“构建路径 - 添加外部存档”中选择C:\ ZMQ \ lib \ zMQ.jar。
全部完成!
在我的电脑中,示例运行正确。
答案 1 :(得分:3)
您应该将libzmq.dll复制到java.library.path指向的位置并使用:
System.loadLibrary("libzmq")
原因是jzmq依赖于libzmq所以必须首先加载libzmq。
答案 2 :(得分:1)
我刚刚遇到过这个问题。我通过将jzmq.dll和libzmq.dll放入System32文件夹找到了解决方法。我不认为这是一个永久性的解决方案,但它暂时起作用。