我正在尝试使用Java示例在Ubuntu上使用ZeroMQ进行编程。我已经成功构建了ZeroMq核心和Java绑定,但是尝试运行简单的示例,它只是无限期地挂起。
以下是我到目前为止所做的事,顺便说一下,我正在使用JDK/JRE 1.7
,ZeroMQ 3.2.2
和Ubuntu 12.10 64-bit
构建ZeroMQ核心库
我从here下载了核心ZeroMQ 3.2.2 POSIX tarball,根据说明here提取和构建。配置,制作和安装一切顺利,没有错误,我还在ldconfig
之后运行make
来更新系统库缓存。快速查看/usr/local/lib
并且核心库似乎已正确构建...
usr1@ubuntu:/usr/local/lib$ ls -ltr *.so
lrwxrwxrwx 1 root dev 15 Apr 1 19:31 libzmq.so -> libzmq.so.3.0.0
lrwxrwxrwx 1 root dev 16 Apr 1 20:14 libjzmq.so -> libjzmq.so.0.0.0
构建JZMQ Java绑定
从here下载的Java绑定源,已配置,运行make;一切看起来都不错这会创建zmq.jar
和zmq-perf.jar
;再次运行ldconfig
以更新库缓存;将罐子移到/usr/local/share/java
......
usr1@ubuntu:/usr/local/share/java$ ls -ltr
-rw-r--r-- 1 usr1 usr1 40507 Apr 1 20:14 zmq.jar
-rw-rw-r-- 1 usr1 usr1 4809 Apr 2 08:41 zmq-perf.jar
运行示例local_lat
我使用以下环境设置运行local_lat
示例详细here ...
java -Djava.library.path=/usr/local/lib -classpath /usr/local/share/java/zmq-perf.jar:/usr/local/share/java/zmq.jar local_lat tcp://127.0.0.1:5555 1 100
得到UnsatisfiedLinkError
;通过登录和退出来修复它。
再次跑,它只是挂起,没有错误,nata,zilch。我从上面删除了参数100
并从local_lat
获得了使用消息,所以我知道它找到了zmq jar文件,因为local_lat
类位于zmq-perf.jar
。再次使用上面的命令,它只是挂起;没有错误,没有。有点失望,因为完成所有事情都需要相当多的工作。
更新
见下文,结果证明这是我测试的问题
答案 0 :(得分:2)
好的,事实证明我所做的一切都是正确的。核心库和Java绑定已成功构建和安装,问题就是示例......
java -Djava.library.path=/usr/local/lib -classpath /usr/local/share/java/zmq-perf.jar:/usr/local/share/java/zmq.jar local_lat tcp://127.0.0.1:5555 1 100
local_lat
程序不是Hello World测试,我认为是,它在jzmq站点上有点误导,上面是命令行示例,而不是测试安装的示例,通过查看local_lat
的代码证实了这一点;它没有做任何事情,当然也没有输出任何东西,这就是为什么它似乎只是挂起。
我用这个code测试了ZeroMq,下载并javac'ed它,使用上面的命令来运行它。