尝试在 Ubuntu 机器上运行 java 程序。 Java 程序正在使用 RXTX 库,当程序尝试打开 com 端口时崩溃:
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)
可能出了什么问题?
启动程序脚本:
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
最佳答案
您运行的是 64 位 JVM,但仅安装了 32 位版本的 rxtx。您应该转到 forks of rxtx 之一按照页面上列出的内容下载该库的 64 位编译版本。
mfizz.com该版本似乎具有最容易下载 x64 库副本的版本。
关于java - RXTX 库在 Ubuntu 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20522645/