2012-05-25 30 views
8

usando Fedora en este momento (el paquete está instalado Package rxtx-2.2-0.5.20100211.fc15.i686 already installed and latest version ).java.lang.UnsatisfiedLinkError: no se arrojó rxtxSerial en java.library.path al cargar gnu.io.RXTXCommDriver

he utilizado/intentado:

# 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 

Entonces utilizado:

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

Pero aún así me sale siempre presente lo siguiente:

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) 

cómo resolver esto?

Seguimiento:

MAL:

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

CORRECTO

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

+0

parece que tiene algunas bibliotecas están desaparecidos. – user1335794

+0

Por favor, publique el código java que está utilizando para cargar la lib. – Santosh

Respuesta

7

Supongo que el problema es que tiene múltiples -Djava.library.path parámetros y el segundo es sobrescribiendo el valor del primero El valor también debe ser la ruta a la carpeta que contiene la biblioteca, sin incluir el nombre de la biblioteca.

El sistema Linux debe ser capaz de combinar ambos parámetros de ruta con dos puntos como separador:

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

Gracias. Esa fue mi consulta, funciona. – YumYumYum

1

tuvimos el mismo problema en Linux. La clave para nosotros arreglar era

  1. uso de dos puntos ":" para separar los elementos java.library.path
  2. Uso barra normal para separadores de directorios

En nuestro caso hemos utilizado un pariente ruta como esta

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

La ruta es relativa a la ruta de inicio. P.ej. cuando se ejecuta desde netbeans, el directorio de inicio es el directorio del proyecto.

3

Tenía el mismo problema con la biblioteca v4l4j instalada desde los repositorios. En el proyecto de Ubuntu netbeans no se pudo iniciar desde IDE, pero funcionó bien como jar.

Resuelto colocando archivos * .so en /usr/lib carpeta no /usr/lib/jni.

+0

¡La mejor de las mejores respuestas! Este método también funciona para pidora os: thumbsup – noelyahan

+1

¡Esto también funcionó para mí en Raspbian! Primero instalé los controladores RXTX usando 'sudo apt-get install librxtx-java' y luego copié todos los archivos/usr/lib ¡y funcionó! –

1

Proyecto -> propiedades -> ruta de compilación Java -> Encuentra tu .jar. Haga clic en + para abrir las propiedades del JAR. Seleccione la ubicación de la biblioteca nativa y edítelo para que apunte a la biblioteca compartida de 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

Cuestiones relacionadas