2012-05-25 22 views
8

लोड करने के दौरान फेडोरा अभी लोड कर रहे हैं (पैकेज Package rxtx-2.2-0.5.20100211.fc15.i686 already installed and latest version स्थापित किया गया है) लोड करते समय java.library.path में कोई rxtxSerial नहीं है।java.lang.UnsatisfiedLinkError: gnu.io.RXTXCommDriver

मैं का इस्तेमाल किया है/करने की कोशिश की:

# locate librxtxSerial 
/home/sun/Downloads/rxtx-2.1-7-bins-r2/Linux/i686-unknown-linux-gnu/librxtxSerial.so 
/home/sun/Downloads/rxtx-2.1-7-bins-r2/Linux/ia64-unkown-linux-gnu/librxtxSerial.so 
/home/sun/Downloads/rxtx-2.1-7-bins-r2/Linux/x86_64-unknown-linux-gnu/librxtxSerial.so 
/home/sun/Downloads/rxtx-2.1-7-bins-r2/Mac_OS_X/librxtxSerial.jnilib 
/home/sun/Downloads/rxtx-2.1-7-bins-r2/Solaris/sparc-solaris/sparc32-sun-solaris2.8/librxtxSerial-2.1-7.so 
/home/sun/Downloads/rxtx-2.1-7-bins-r2/Solaris/sparc-solaris/sparc32-sun-solaris2.8/librxtxSerial.so 
/home/sun/Downloads/rxtx-2.1-7-bins-r2/Solaris/sparc-solaris/sparc64-sun-solaris2.8/librxtxSerial-2.1-7.so 
/home/sun/Downloads/rxtx-2.1-7-bins-r2/Solaris/sparc-solaris/sparc64-sun-solaris2.8/librxtxSerial.so 
/usr/lib/rxtx/librxtxSerial-2.2pre1.so 
/usr/lib/rxtx/librxtxSerial.so 

तब प्रयोग किया है:

-Djava.library.path=/usr/lib/rxtx/librxtxSerial.so -Djava.library.path=/usr/lib/jni 

लेकिन फिर भी मैं हमेशा इस निम्नलिखित मिलती है:

java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver 
Exception in thread "main" java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path 
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1681) 
    at java.lang.Runtime.loadLibrary0(Runtime.java:840) 
    at java.lang.System.loadLibrary(System.java:1047) 
    at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83) 
    at main.Tty.sendCommand1(Tty.java:212) 
    at main.Tty.main(Tty.java:236) 

यह कैसे हल करने के लिए?

अप का पालन करें:

गलत:

-Djava.library.path=/usr/lib/rxtx -Djava.library.path=/usr/lib/jni

सही

-Djava.library.path=/usr/lib/jni -Djava.library.path=/usr/lib/rxtx

+0

लगता है आपके पास कुछ पुस्तकालयों याद कर रहे हैं। – user1335794

+0

कृपया जावा कोड पोस्ट करें जिसका उपयोग आप lib लोड करने के लिए कर रहे हैं। – Santosh

उत्तर

7

मुझे लगता है कि समस्या आप एक से अधिक -Djava.library.path पैरामीटर और दूसरा एक है मूल्य को ओवरराइट करना पहले का। मूल्य पुस्तकालय युक्त फ़ोल्डर का पथ भी होना चाहिए, जिसमें लाइब्रेरी नाम शामिल नहीं है।

Linux सिस्टम पर आप विभाजक के रूप में बृहदान्त्र का उपयोग कर दोनों पथ मापदंडों गठबंधन करने के लिए सक्षम होना चाहिए:

-Djava.library.path=/usr/lib/rxtx:/usr/lib/jni 
+0

धन्यवाद। यह मेरी पूछताछ थी, यह काम करता है। – YumYumYum

1

हम लिनक्स पर एक ही समस्या थी। हमें ठीक करने के लिए कुंजी यह था

  1. उपयोग बृहदान्त्र ":" java.library.path तत्वों को अलग करने के निर्देशिका विभाजक के लिए
  2. उपयोग फ़ॉरवर्ड स्लैश

हमारे मामले में हम एक रिश्तेदार का इस्तेमाल किया इस तरह की पथ

-Djava.library.path=jar/linux64:jars 

पथ स्टार्टअप पथ से संबंधित है। जैसे netbeans से चलते समय स्टार्टअप निर्देशिका प्रोजेक्ट निर्देशिका है।

3

भंडार से स्थापित v4l4j लाइब्रेरी के साथ एक ही समस्या थी। अनंटू नेटबींस प्रोजेक्ट में आईडीई से शुरू करने में असफल रहा, लेकिन जार के रूप में ठीक काम किया।

* .so फ़ाइलों को /usr/lib/usr/lib/jni फ़ोल्डर में डालकर हल किया गया।

+0

सर्वोत्तम उत्तर का सर्वोत्तम! यह विधि पिडोरा ओएस के लिए भी काम करती है: thumbsup – noelyahan

+1

यह मेरे लिए रास्पियन में भी काम करता है! मैंने पहले 'sudo apt-get install librxtx-java' का उपयोग करके RXTX ड्राइवर स्थापित किए और फिर सभी फ़ाइलों/usr/lib की प्रतिलिपि बनाई और यह काम किया! –

1

प्रोजेक्ट -> गुण -> जावा बिल्ड पथ -> अपना .jar खोजें। जार की संपत्तियों को खोलने के लिए + पर क्लिक करें। मूल पुस्तकालय स्थान का चयन करें और RXTX की साझा लाइब्रेरी (डीएलएल, .so, .dylib) को इंगित करने के लिए इसे संपादित करें।

0
Copy RXTXcomm.jar ---> <JAVA_HOME>\jre\lib\ext 

Copy rxtxSerial.dll ---> <JAVA_HOME>\jre\bin

Copy rxtxParallel.dll ---> <JAVA_HOME>\jre\bin