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

标签 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>

有什么想法吗?谢谢。

最佳答案

正如我之前在评论中提到的,您还需要 native 库才能使其工作。将其放入 ${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

Unzip the rxtx archive and install it. The following commands assume your JVM is located in /usr/lib/jvm/java-6-openjdk/ and that you are using a 32-bit x86 computer. You will need to slightly modify these commands if you have a different JVM or system architecture (i.e., 64-bit).

$ 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/

关于java - NoClassDefFoundError - 无法初始化类...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22164784/

相关文章:

java - 在非 Android 应用程序上使用 LeakCanary

java - PageAdapter 不输出正常数据

java - 使用 MySQL 通过 java 更新表内的单个值

java - 在 Eclipse 中 Maven build 和 Maven build... 有什么区别?

maven - Gradle 创建 pom 失败

java - Linux Maven 配置 - 设置 JAVA_HOME 会破坏 Maven

java - 为什么 JSONArray 不提供 contains() 方法?

java - 导出的可运行 jar 文件中不显示图像和文本文件

java - 如何制作 jar 文件以在运行时加载图像

java - 将外部类导出到 JAR - Eclipse