2012-05-25 45 views
8

Fedora usando in questo momento (pacchetto è installato Package rxtx-2.2-0.5.20100211.fc15.i686 already installed and latest version ).java.lang.UnsatisfiedLinkError: nessuna rxtxSerial in java.library.path gettato durante il caricamento gnu.io.RXTXCommDriver

ho usato/provato:

# 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 

poi utilizzati:

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

Ma ancora ottengo sempre questo seguente:

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) 

come risolvere questo?

Follow-up:

SBAGLIATO:

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

CORRETTO

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

+0

sembra di avere alcune librerie sono mancanti. – user1335794

+0

Si prega di inviare il codice java che si sta utilizzando per caricare la lib. – Santosh

risposta

7

Credo che il problema è che si dispone di più -Djava.library.path parametri e la seconda è sovrascrivendo il valore del primo Il valore dovrebbe essere anche il percorso della cartella che contiene la libreria, escluso il nome della libreria.

Su sistema Linux si dovrebbe essere in grado di combinare entrambi i parametri di percorso usando i due punti come separatore:

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

Grazie. Quella era la mia domanda, funziona. – YumYumYum

1

abbiamo avuto lo stesso problema su Linux. La chiave per noi per risolvere il problema era

  1. Usa punti ":" per separare gli elementi java.library.path
  2. Usa barra per i separatori di directory

Nel nostro caso abbiamo usato un parente percorso come questo

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

Il percorso è relativo al percorso di avvio. Per esempio. quando si esegue da netbeans la directory di avvio è la directory del progetto.

3

Aveva lo stesso problema con la libreria v4l4j installata dai repository. Nel progetto netbeans ununtu non è riuscito a partire da IDE, ma ha funzionato bene come jar.

Risolto mettendo i file * .so nella cartella /usr/lib non /usr/lib/jni.

+0

Meglio della migliore risposta! Questo metodo funziona anche per pidora: thumbsup – noelyahan

+1

Questo ha funzionato anche per me in Raspbian! Ho prima installato i driver RXTX usando 'sudo apt-get install librxtx-java' e poi ho copiato tutti i file/usr/lib e ha funzionato! –

1

Progetto -> Proprietà -> Percorso di build Java -> Trova il tuo .jar. Fare clic su + per aprire le proprietà del JAR. Selezionare la posizione della libreria nativa e modificarla per fare riferimento alla libreria condivisa di RXTX (.DLL, .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

Problemi correlati