【发布时间】:2015-07-04 00:55:38
【问题描述】:
基本上我想使用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。
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
现在我想知道我做错了什么(也许是一些很大的误解?)
任何帮助将不胜感激!
【问题讨论】:
-
您的项目根目录下应该有以下 3 个文件 RXTXcomm.jar, rxtxParallel.dll, rxtxSerial.dll 不同的 IDE 放置这些文件的位置不同。让我知道这是否有帮助。所以我可以用指南来回答它。
-
好吧,我在 Mac 上,因此我只有 2 个文件:RXTXcomm.jar 和 librxtxSerial.jnilib。 (下载预编译文件时,没有适用于mac的并行native lib)
-
没问题,概念是一样的,windows我也遇到过同样的问题,问题是,从你的IDE编译时,需要知道文件的位置,我想如果您发现将它们放置在项目的正确根文件夹位置将解决问题。否则我建议你去 JSSC 包更好code.google.com/p/java-simple-serial-connector
-
我检查了两次和三次路径,它是正确的,这就是我加载目录后得到的:file:/Users/redxef/NetBeansProjects/arduino_io/dist/lib:/Users/ redxef/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:。并且在第一个目录中都是文件
-
OK,试试jssc,因为我对RXTX的体验不是很好,遇到了很多问题。也许JSSC会为你解决。