gonzalo diethelm wrote:
>> In answer to the Java bindings issue. I encountered the same problem
>>     
> as
>   
>> already mentioned in a precedent thread.
>> I compiled the bindings without problems following README
>>     
> instructions.
>   
>> If I try the example in /perf:
>> java -Djava.library.path=/virgoDev/zmq/v2r0p9/lib -classpath
>> /virgoDev/zmq/v2r0p9/lib/zmq.jar: local_lat "tcp://localhost:5555" 1
>>     
> 100
>   
>> where the paths are correctly put, I get the answer:
>> jzmq library loaded ! // this is a message that proves that lib is
>>     
> loaded.
>   
>> Exception in thread "main" java.lang.UnsatisfiedLinkError: construct
>>         at org.zeromq.ZMQ$Context.construct(Native Method)
>>         at org.zeromq.ZMQ$Context.<init>(ZMQ.java:117)
>>         at org.zeromq.ZMQ.context(ZMQ.java:73)
>>         at local_lat.main(local_lat.java:36)
>>     
>
> Wouldn't this point to the fact that you are not finding the shared
> library (native code) that underlies the Java binding? Where are both
> your libzmq.so and libjzmq.so libraries located? Are both those
> locations in your LD_LIBRARY_PATH or in any place that can be found by
> the dynamic link loader?
>
>   
Yes they are both located in the same place, i.e :

/virgoDev/zmq/v2r0p9/lib

As I mentioned before, there is no problem with the library location 
since I added a stdout message on load success. It is a naming problem, 
the jvm 
<http://www.velocityreviews.com/forums/t371398-java-lang-unsatisfiedlinkerror.html#>is
 
unable to find the methods it expects to find in the native library.
 I caught that point from a forum which may help:
Note that the DLL is necessarily written to be used from a particular
Java class
<http://www.velocityreviews.com/forums/t371398-java-lang-unsatisfiedlinkerror.html#>.
 
That class declares a number of native methods, and the
DLL contains implementations of those methods. You cannot load the
same DLL from another class and expect to be able to use those methods
as though they belonged to the new class, because the method names in
the DLL are determined (in part) by the name of the class they belong
to. Did you rename the class the dll was intended to be used from? Did you
change its package declaration?

_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to