编写简单测试程序时出错:
package Xbee;
import com.rapplogic.xbee.api.XBee;
import com.rapplogic.xbee.api.XBeeException;
public class XbeeTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
XBee xbee = new XBee();
try {
xbee.open("COM22", 9600);
} catch (XBeeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我得到以下内容:
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class gnu.io.RXTXVersion
at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:123)
at com.rapplogic.xbee.RxTxSerialComm.openSerialPort(RxTxSerialComm.java:71)
at com.rapplogic.xbee.RxTxSerialComm.openSerialPort(RxTxSerialComm.java:61)
at com.rapplogic.xbee.api.XBee.open(XBee.java:140)
at Xbee.XbeeTest.main(XbeeTest.java:14)
整个问题是它无法初始化类gnu.io.RXTXversion,这是一个rtxtcomm.jar的prt,我已经将其包含在我的Maven依赖项中:
<dependency>
<groupId>org.bidib.jbidib.org.qbang.rxtx</groupId>
<artifactId>rxtxcomm</artifactId>
<version>2.2</version>
</dependency>
有什么想法吗?感谢。
答案 0 :(得分:3)
正如我之前在评论中提到的,您还需要本机库才能使其正常工作。把它放在$ {JRE_HOME} / lib / i386
中好文章:http://pharos.ece.utexas.edu/wiki/index.php/How_to_Access_Your_Serial_Port_using_Java
并引用文章:
$ wget http://rxtx.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip
解压缩rxtx存档并安装它。以下命令假设 你的JVM位于/ usr / lib / jvm / java-6-openjdk /,你就是这样 使用32位x86计算机。您需要稍微修改这些 命令,如果您有不同的JVM或系统架构(即, 64位)。
$ sudo apt-get install zip
$ unzip rxtx-2.1-7-bins-r2.zip
$ cd rxtx-2.1-7-bins-r2
$ sudo cp RXTXcomm.jar / usr / lib / jvm / java-6-openjdk / jre / lib / ext /
$ sudo cp Linux / i686-unknown-linux-gnu / librxtx * / usr / lib / jvm / java-6-openjdk / jre / lib / i386 /
答案 1 :(得分:1)
rxtxso
和Comm jar文件。