zeroMQ UnsatisfiedLinkError в приложении Java

Я написал приложение, которое связывается через zeroMQ с другим приложением. На моей машине разработки под управлением Ubuntu 13 все хорошо и работает.

У меня установлен zeroMQ 4.4.0, также была скомпилирована java-привязка jzmq без ошибок.

Но на нашем тестовом / производственном сервере я получаю это. Приложение запускается и из requestInit() оно пытается запросить свою конфигурацию у главного менеджера конфигурации через zeroMQ.

bs@server-01:~/$ java -Djava.library.path=/usr/local/lib -jar /home/bs/opengraphchild/jar/opengraph.jar 5000 opengraph1
Params = 5000
Params = opengraph1
Starting Test service ...
Running
TestService.requestInit()
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.zeromq.ZMQ$Socket.nativeInit()V
    at org.zeromq.ZMQ$Socket.nativeInit(Native Method)
    at org.zeromq.ZMQ$Socket.<clinit>(ZMQ.java:521)
    at org.zeromq.ZMQ$Context.socket(ZMQ.java:451)
    at bs.core.service.GenericService.initZmqClient(GenericService.java:41)
    at bs.service.opengraph.OpenGraph.requestInit(OpenGraph.java:131)
    at bs.service.opengraph.OpenGraph.run(OpenGraph.java:62)
    at bs.service.opengraph.OpenGraphRunner.main(OpenGraphRunner.java:13)

Я не мог найти что-либо, имеющее отношение к моей проблеме, поэтому я прошу вас, ребята. Пожалуйста, помогите:( [не знаю, нужно ли вам видеть исходный код, так как он работает на моей локальной машине, но я могу добавить его]

вывод ldconfig -v | grep zmq

/sbin/ldconfig.real: Path `/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once
    libzmq.so.3 -> libzmq.so.3.1.0
    libjzmq.so.0 -> libjzmq.so.0.0.0
    libzmq.so.1 -> libzmq.so.1
/sbin/ldconfig.real: Can't create temporary cache file /etc/ld.so.cache~: Permission denied

вывод ldd /usr/local/lib/libzmq.so:

linux-vdso.so.1 =>  (0x00007fffcdf7c000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f565a105000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5659ee8000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f5659be7000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5659827000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f5659611000)
/lib64/ld-linux-x86-64.so.2 (0x00007f565a56b000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5659314000)

вывод ldd /usr/local/lib/libjzmq.so

linux-vdso.so.1 =>  (0x00007fffcf322000)
libzmq.so.3 => /usr/local/lib/libzmq.so.3 (0x00007fe7499a8000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fe7496a8000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe7492e7000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fe7490df000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe748ec2000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fe748cab000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fe7489af000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe749e0c000)

1 ответ

Вот что я должен сделать, чтобы он работал на Windows, OS X и Ubuntu:

http://sourceforge.net/p/jalgo/code-0/HEAD/tree/trunk/src/org/aso/algo/messaging/bus/zmq/ZMQLoader.java#l17

Автобусный пакет также содержит учреждение паба / юга, поэтому вы можете обратиться к нему

Другие вопросы по тегам