gpt4 book ai didi

Java RXTX 库不加载 native 库

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:18:59 24 4
gpt4 key购买 nike

基本上,我想使用 RXTX Library for java 为我的 Arduino 编写一个简单的通信工具。并在加载动态库时严重失败。

我的系统规范:
操作系统:OS X Yosemite 10.10.3
Java: SDK 1.8.0_45
RXTX:2.1-7r2 - 针对运行 64 位 java 的 intel mac 的修改版本,可以找到 here .
集成开发环境:NetBeans 8

我检查了这些文件是否按照安装说明工作,安装说明只是将这两个文件复制到/Library/Java/Extensions 目录中。

现在我想删除它们并从我的应用程序加载库。我做了以下事情:

  • 将 RXTXcomm 库添加到 netbeans 中的项目。
  • 使用以下代码将 native 库的容器包含在“java.library.path”属性中

System.setProperty("java.library.path",
location.getPath() + File.pathSeparator + System.getProperty("java.library.path"));

  • 并使用System.loadLibrary("rxtxSerial")加载库

当我编译代码并尝试运行它时,它给了我一个
java.lang.UnsatisfiedLinkError: java.library.path 中没有 rxtxSerial

现在我想知道我做错了什么(也许是一些很大的误解?)

如有任何帮助,我们将不胜感激!

最佳答案

这是对您的问题的解释和对解决方案的建议。

RXTX 在我看来有两个主要问题:

  1. 根据您的 IDE,您需要放置 Mac:RXTXcomm.jarlibrxtxSerial.jnilib PC:RXTXcomm.jarrxtxSerial.dll 在您的 IDE 或 Java 代码中的项目的根目录下,它因 IDE 而异。此处的文档并未涵盖如何在 NetBeans、IntelliJ 等不同的 IDE 中执行此操作,因此我使其可以在 Eclipse 和 IntelliJ 上运行,但还不能在 NetBeans 上运行。我还有其他问题。
  2. 根据您的操作系统,即使您启动并运行此程序包,例如在 Windows 8.1 中,它也无法关闭端口。唯一的解决方案是重新启动 IDE/控制台并重新连接。

无论如何我建议你转到一个问题更少的包 JSSC

下面是一个简单的使用JSSC从串口读取数据的例子:

public class Main {

public static void main(String[] args) {
SerialPort serialPort = new SerialPort("COM1");
try {
serialPort.openPort();//Open serial port
serialPort.setParams(9600, 8, 1, 0);//Set params.
byte[] buffer = serialPort.readBytes(10);//Read 10 bytes from serial port
serialPort.closePort();//Close serial port
}
catch (SerialPortException ex) {
System.out.println(ex);
}
}
}

注意:这是一个开放式答案,如果你们中的任何人对此有经验,请通过编辑答案做出贡献。我见过有人问我一般的 RXTX 问题和几乎相同的问题。

关于Java RXTX 库不加载 native 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31215821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com