2013-12-11 121 views
0

試圖在Ubuntu機器上運行java程序。 Java程序正在使用RXTX庫並在程序嘗試打開COM端口時崩潰:Ubuntu上的RXTX庫失敗

java.lang.UnsatisfiedLinkError: /opt/pnt/lib/librxtxSerial.so: /opt/pnt/lib/librxtxSerial.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch) thrown while loading gnu.io.RXTXCommDriver 
Exception in thread "main" java.lang.UnsatisfiedLinkError: /opt/pnt/lib/librxtxSerial.so: /opt/pnt/lib/librxtxSerial.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch) 
    at java.lang.ClassLoader$NativeLibrary.load(Native Method) 
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1750) 
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1675) 
    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 Serial.tSerial.connect(tSerial.java:565) 
    at protocol.Msg.open(Msg.java:196) 
    at protocol.Msg.getMsg(Msg.java:66) 
    at jeasi.MyHandler.<init>(MyHandler.java:56) 
    at jeasi.MyHandler.main(MyHandler.java:665) 

什麼可能是錯誤的?

開始PROGRAMM腳本:

cd /opt/pnt; 
/usr/bin/java -Djava.library.path=/opt/pnt/lib -cp /opt/pnt/lib/commons-codec-1.5.jar:/opt/pnt/lib/log4j.jar:/opt/pnt/lib/RXTXcomm.jar:/opt/pnt/bin:. pr.MyHandler 

回答

0

您運行的是64位JVM和只安裝RXTX的32位版本。您應該轉到頁面上列出的forks of rxtx之一併下載該庫的64位編譯版本。

mfizz.com版本似乎有最簡單的下載x64庫的副本。

+0

mfizz.com是爲centOS編譯的。它不適合我。 – gkiko

+0

你應該問另一個問題,詳細說明你如何安裝它,並詳細說明錯誤是什麼,不幸的是,它可能是它沒有工作的任何原因。它爲CentOS編譯的事實並不意味着什麼;我已經成功地使用了針對各種linux發行版編譯的庫,並且沒有任何問題。 – Petesh