Problema com librxtxSerial.so

Iniciado por tipsantos, 04 de Outubro de 2011, 09:32

tópico anterior - próximo tópico

tipsantos

Bom dia. Estou com um problema que não sei mais como resolver. Tenho uma aplicação feita em Java que ao ser executada gera o erro abaixo:

java.lang.UnsatisfiedLinkError: /usr/lib/jvm/jdk1.6.0_27/jre/lib/ext/librxtxSerial.so: /usr/lib/jvm/jdk1.6.0_27/jre/lib/ext/librxtxSerial.so: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch) thrown while loading gnu.io.RXTXCommDriver
Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/lib/jvm/jdk1.6.0_27/jre/lib/ext/librxtxSerial.so: /usr/lib/jvm/jdk1.6.0_27/jre/lib/ext/librxtxSerial.so: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch)
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1807)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1716)
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1028)
        at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83)
        at continental.serial.SerialPortHandler.openSerialPort(SerialPortHandler.java:52)
        at continental.serial.SerialSocket.open(SerialSocket.java:43)
        at continental.protocol.io.SerialChannel.start(SerialChannel.java:105)
        at continental.protocol.acp.console.ACPServerConsole.send_sms_service(ACPServerConsole.java:1035)
        at continental.protocol.acp.console.ACPServerConsole.send(ACPServerConsole.java:163)
        at continental.protocol.acp.console.ACPServerConsole.parse(ACPServerConsole.java:125)
        at continental.server.console.parser.Main.main(Main.java:160)


Isso ocorreu depois que atualizei a minha versão do jdk da versão 1.6.0.24 para a versão 1.6.0.27. Já verifiquei se a biblioteca librxtxSerial.so existe e ela está em /usr/lib/. Mas acho que o caminho da variável de ambiente ou algum link está setado de forma errônea.

Alguém saberia me indicar uma luz aí?
Obrigado..

fpissarra

Você observou a mensagem de erro?
CitarException in thread "main" java.lang.UnsatisfiedLinkError: /usr/lib/jvm/jdk1.6.0_27/jre/lib/ext/librxtxSerial.so: /usr/lib/jvm/jdk1.6.0_27/jre/lib/ext/librxtxSerial.so: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch)

librxtxSerial.so foi desenvolvida para arquitetura 32 ou 64 bits?
O seu ambiente é 32 ou 64 bits?

O path de librxtxSerial.so está em LD_LIBRARY_PATH?

tipsantos

fpissarra você citou algo que acabei de fazer. Verifiquei a arquitetura e estava instalado o jdk de 32 para 64 bits. Fiz a instalação e resolveu em partes o problema. Quando rodo a aplicação com um usuário específico do servidor o erro permanece. O path está setado corretamente em LD_LIBRARY_PATH.

fpissarra

Citação de: tipsantos online 04 de Outubro de 2011, 11:00
fpissarra você citou algo que acabei de fazer. Verifiquei a arquitetura e estava instalado o jdk de 32 para 64 bits. Fiz a instalação e resolveu em partes o problema. Quando rodo a aplicação com um usuário específico do servidor o erro permanece. O path está setado corretamente em LD_LIBRARY_PATH.

Ok, dada a mensagem de erro eu pensei que vocẽ estivesse tentando usar uma lib desenvolvida para ambiente 64 bits num ambiente 32 bits...