java - RXTX 库在 Ubuntu 上失败

标签 java linux rxtx

尝试在 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/

相关文章:

java - LuaJ - 调用 Java 方法

java - org.xml.sax.SAXParseException 文档中跟在根元素之后的标记必须格式正确

Java 8 流 : convert comma separated string to the list of abstract Enum

linux - LD_LIBRARY_PATH 优先级

yocto 的 Linux 功能

java - 在运行时更改类文件

Java RXTX - 通过串行通信检测正确的设备

java - 深度优先搜索以查找节点问题之间的所有路径

linux - Nagios:NRPE:无法读取输出

java - 64 位系统上 Java 的串行通信 API(调制解调器交互)