3

我正在尝试嵌入zeroMQ我的应用程序,我按照这个指南安装ZMQ,所以直到这里一切正常。我的应用程序中有这行代码:

ZMQ.Context m_context = ZMQ.context(1);

但上面的代码行引发以下异常:

Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/libjzmq-812339378390536247.lib: libzmq.so.3: cannot open shared object file: No such file or directory
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1939)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1864)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1825)
    at java.lang.Runtime.load0(Runtime.java:792)
    at java.lang.System.load(System.java:1059)
    at org.zeromq.EmbeddedLibraryTools.loadEmbeddedLibrary(EmbeddedLibraryTools.java:136)
    at org.zeromq.EmbeddedLibraryTools.<clinit>(EmbeddedLibraryTools.java:22)
    at org.zeromq.ZMQ.<clinit>(ZMQ.java:38)
    at com.castaclip.verticals.Messenger.<init>(Messenger.java:125)
    at com.castaclip.verticals.PushMessenger.<init>(PushMessenger.java:30)
    at com.castaclip.verticals.pushserver.App.setup(App.java:60)
    at com.castaclip.verticals.pushserver.App.main(App.java:41)

错误正是指向这一行

PS:完全解释这个问题有点困难..如果你有任何问题请告诉我。谢谢。

4

3 回答 3

16

如果您已按该顺序成功构建了 libzmq 和 jzmq,我将运行:

$ sudo ldconfig

更新系统库缓存。然后我会检查 LD_LIBRARY_PATH 是否像 Raffian 提到的那样定义,或者将您的库路径明确设置为:

$ java -Djava.library.path=/usr/lib:/usr/local/lib
于 2013-06-25T02:19:34.630 回答
1

最后我试图找出问题所在。我正在使用zeromq-2.1.10,这是问题的一部分。

所以我zeromq-3.2.3从源头安装并解决了问题。

于 2013-06-25T18:59:29.993 回答
0

当我:

# java -Djava.library.path=/usr/hf/zmq/lib/ -cp '/usr/hf/lib/*:.' com.zmqtest.MA
Exception in thread "main"
java.lang.UnsatisfiedLinkError: /usr/hf/zmq/lib/libjzmq.so:
libzmq.so.3: cannot open shared object file: No such file or directory

这是用一个对我来说毫无意义的解决方案修复的:

# LD_LIBRARY_PATH=/usr/hf/zmq/lib/ java -Djava.library.path=/usr/hf/zmq/lib/ -cp '/usr/hf/lib/*:.' com.zmqtest.MA

奇怪。

于 2013-06-27T16:24:37.487 回答