2012-06-20 18 views
5

CentOSを実行しているVMに0MQをインストールしました.Cベースのアプリケーションがうまく動作しています。しかし、JZMQバインディングを介してJavaアプリケーションを動作させることはできません。0MQ - JZMQ満足していないリンクエラー

java -Djava.library.path=/usr/local/lib -jar AidApps.jar receive localhost:9007 
Starting the receiver application. 
Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/local/lib/libjzmq.so.0.0.0: libzmq.so.1: cannot open shared object file: No such file or directory 
at java.lang.ClassLoader$NativeLibrary.load(Native Method) 
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1750) 
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1675) 
at java.lang.Runtime.loadLibrary0(Runtime.java:840) 
at java.lang.System.loadLibrary(System.java:1047) 
at org.zeromq.ZMQ.<clinit>(ZMQ.java:34) 
at com.ijet.Receiver.main(Receiver.java:9) 
at com.ijet.Main.main(Main.java:13) 

0MQまたはJZMQのインストール中にエラーは発生しません。すべてのライブラリを/ usr/local/libにコピーしようとしましたが、何も解決しませんでした。何か案は?これは私のMac上で動作するので(JARの動作を知っているので)、Linuxのボックスでは動作しません。

+2

実行 'lddでは/ usr/local/lib/libjzmq.so.0.0.0'、私達にここで出力 –

+0

を与えるには、出力 ' lddでは/ usr/local/lib/libjzmq.so.0.0.0' です'のLinux vdso.so.1 =>(0x00007fffa1f31000)' ' libzmq.so.1 => 'のlibstdC++をfound'ない。so.6 => /usr/lib64/libstdc++.so.6(0x00007f4f7a17c000)' 'libm.so.6 => /lib64/libm.so.6(0x00007f4f79ef8000)' 'libc.so.6 => /lib64/libc.so.6(0x00007f4f79b68000)' 'libgcc_s.so.1 => /lib64/libgcc_s.so.1(0x00007f4f79951000) ' ' /lib64/ld-linux-x86-64.so.2(0x00000033ca600000) ' –

+2

' libzmq.so.1'は存在しますか? 'file libzmq.so.1'を試してください。64ビットELFですか? –

答えて

7

これは、ld.soがlibzmq.so.1.0.0を解決できないためです。

/usr/local/lib/etc/ld.so.configに追加し、ldconfigを実行してキャッシュを再構築してください。この問題を解決するために

10

手順(クレジットはJ16-SDiZにに行く):

1)cp /root/zeromq-2.1.11/src/.libs/*.* /usr/local/lib
2)nano /etc/ld.so.conf.d/zmq.conf
3)ライン/usr/local/libを追加し、
4を保存)ldconfig
5)を確認しますldconfig -v | grep zmq
6)を実行して-Djava.librarそのjava -Djava.library.path=/usr/local/lib/ -jar AidApps.jar receive localhost:9007

注JARを実行しますy.pathをまだ指定する必要がある場合は、jzmq.jarファイルを指定します。

関連する問題