基本上我想使用 Arduino 编写一个简单的通信工具java 的 RXTX 库 http://rxtx.qbang.org/wiki/index.php/Main_Page并且在加载动态库时严重失败。
我的系统规格:
操作系统:OS X 优胜美地 10.10.3
Java:SDK 1.8.0_45
RXTX:2.1-7r2 - 针对运行64位java的intel mac的修改版本,可以找到here http://blog.iharder.net/2009/08/18/rxtx-java-6-and-librxtxserial-jnilib-on-intel-mac-os-x/.
IDE:NetBeans 8
我检查过,这些文件是按照安装说明工作的,只需将这两个文件复制到 /Library/Java/Extensions 目录中即可。
现在我想删除它们并从我的应用程序加载库。
我做了以下事情:
- 将 RXTXcomm 库添加到 netbeans 中的项目中。
- 使用以下代码将本机库的容器包含在“java.library.path”属性中
System.setProperty("java.library.path",
location.getPath() + File.pathSeparator + System.getProperty("java.library.path"));
- 并使用加载库
System.loadLibrary("rxtxSerial")
当我编译代码并尝试运行它时,它给了我一个
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
现在我想知道我做错了什么(也许是一些很大的误解?)
任何帮助,将不胜感激!
这是对您的问题的解释和解决方案的建议。
我认为RXTX有两个主要问题:
- 根据您的 IDE,您需要放置 Mac:
RXTXcomm.jar
and librxtxSerial.jnilib
PC: RXTXcomm.jar
, rxtxSerial.dll
在 IDE 或 Java 代码中项目的根目录中,它随 IDE 的不同而不同。这里的文档没有介绍如何在 NetBeans、IntelliJ 等不同的 IDE 中执行此操作,因此我让它可以在 Eclipse 和 IntelliJ 上运行,但还不能在 NetBeans 上运行。我还有其他问题。
- 根据您的操作系统,即使您启动并运行此软件包(以 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);
}
}
}
- 查看所有示例JSSC https://code.google.com/p/java-simple-serial-connector/wiki/jSSC_examples codes
- 该包可以下载here https://code.google.com/p/java-simple-serial-connector/downloads/list.
- JSSC 主页 https://code.google.com/p/java-simple-serial-connector/
Note:这是一个开放的答案,如果你们中的任何人有这方面的经验,请通过编辑答案来贡献。
我见过有人提出问题,并且对 RXTX 遇到几乎同样的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)