2012-06-20 13 views
5

Zainstalowałem 0MQ na maszynie wirtualnej z oprogramowaniem CentOS, a ja korzystam z aplikacji opartej na języku C. Nie mogę jednak uruchomić aplikacji Java za pomocą powiązań JZMQ. Oto błąd, który dostaję:0MQ - Niezadowolony błąd łącza 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) 

Nie dostaję żadnych błędów podczas instalacji 0MQ lub JZMQ. Próbowałem skopiować wszystkie biblioteki do/usr/local/lib, ale to niczego nie rozwiązało. Jakieś pomysły? Działa to na moim Macu (więc wiem, że działa JAR), ale nie na Linuksie.

+2

run 'ldd/usr/local/lib/libjzmq.so.0.0.0' i daje nam moc –

+0

oto wyjście ' ldd/usr/local/lib/libjzmq.so.0.0.0' 'linux-vdso.so.1 => (0x00007fffa1f31000)' 'libzmq.so.1 => nie znalezione' ' libstdC++. 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

czy istnieje' libzmq.so.1'? Spróbuj 'file libzmq.so.1', czy jest to 64-bitowy ELF? –

Odpowiedz

7

Dzieje się tak dlatego, że ld.so nie może rozwiązać Twojego libzmq.so.1.0.0.

Dodaj ścieżkę /usr/local/lib do /etc/ld.so.config i uruchom ldconfig, aby odbudować pamięć podręczną.

10

kroki, aby rozwiązać ten problem (zasługa do J16-SDiZ):

1) cp /root/zeromq-2.1.11/src/.libs/*.* /usr/local/lib
2) nano /etc/ld.so.conf.d/zmq.conf
3) Dodaj linia /usr/local/lib i zapisać
4) ldconfig
5) Sprawdź uruchamiając ldconfig -v | grep zmq
6) Uruchom JAR java -Djava.library.path=/usr/local/lib/ -jar AidApps.jar receive localhost:9007

Zauważ, że -Djava.librar y.path musi jeszcze zostać określony, wskaż go w pliku jzmq.jar.

Powiązane problemy