NoClassDefFoundError - 无法初始化类......?

时间:2014-03-04 06:43:25

标签: java maven jar

编写简单测试程序时出错:

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>

有什么想法吗?感谢。

2 个答案:

答案 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)

  1. Java构建路径 - &gt;来源 - &gt;本机库位置 - &gt;添加您的rxtxso和Comm jar文件。
  2. Java构建路径 - &gt;添加外部JAR - &gt; RXTXcomm.jar
  3. Java构建路径 - &gt;订单和出口 - &gt;单击RXTXcomm.jar