itm / wsn-device-utils

A set of command line utils to reprogram, reset, listen to, ... wireless sensor network devices
2 stars 5 forks source link

UnsatisfiedLinkError because of RXTX libraries #23

Closed moodgorning closed 13 years ago

moodgorning commented 13 years ago

When starting the DeviceObserverCLI I get the following error:

java.lang.UnsatisfiedLinkError: Native Library /Users/maxpagel/.wsn-device-drivers/librxtxSerial.jnilib already loaded in another classloader thrown while loading gnu.io.RXTXCommDriver

This seems to be connected to a somewhat automatic copying loading of the RXTX libraries from the WSN-device-drivers module. At least the path comes from here: https://github.com/itm/wsn-device-drivers/blob/master/core/src/main/java/de/uniluebeck/itm/wsn/drivers/core/util/JarUtil.java#L33

Can anyone shed some light into when and where these Libraries are copied loaded reloaded? I just remember the old days where you just had to add -Djava.library.path=... and everything was fine. Aparently something has changed here.

mlegenhausen commented 13 years ago

How do you start your application? What OS are you using?

It seems you loaded already an older version of the native library. Please check your classpath.

Sure, when you know that you have to add a native library to the java.library.path and also know which is the right one for your OS, everything works fine. But when you don't know all these things something like JarUtil can make your life much easier.

moodgorning commented 13 years ago

Don't get me wrong I'm not saying JarUtil is bad :-) actually If it works I like it a lot. I just wanted to illustrate my state of information. I'm running on MacOSX, and I start the application by just invoking java -jar /Developer/git/wsn-device-utils/target/wsn-device-utils-0.3.3-SNAPSHOT-observer.jar

But thanks for your swift help, I found an older version of the RXTX classes in my jvm libraries folder, and removing them seems to fix the problem. SO your suggestion that I had loaded an older version from somewhere turned out to be true