22

我正在尝试将 64 位 rxtx 串行通信库(从 cloudhopper 下载)与 64 位 windows 7 和 eclipse 一起使用。我得到消息: java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path。dll 位于/jre/libdir 和Windows/System32. 它RXTXcomm.jar位于 Eclipse 的构建路径以及jre/lib/ext目录中。我在后台运行进程监视器,发现RXTXcomm.jar,rxtxSerial.dllrxtxParallel.dll都已找到并已打开,所以我不清楚为什么会出现这个问题。

有什么建议么。

4

12 回答 12

21

转到项目 -> 属性 -> Java 构建路径 -> 找到您的 .jar。单击 + 打开 JAR 的属性。选择 Native library location 并编辑它以指向 RXTX 的共享库(.DLL、.so、.dylib)。

于 2013-11-28T05:13:18.180 回答
9

librxtx-java您可以从 repo 为 Ubuntu安装软件包。

于 2011-12-14T14:34:39.217 回答
7

您还可以添加虚拟机参数:

-Djava.library.path=c:\path\to\dll\

或者

-Djava.library.path=/path/to/lib/

这对我有用。也可以参考这个问题

于 2012-08-20T16:57:32.710 回答
4

Windows 用户:我的问题实际上是我将rxtxSerial.dllrxtxParallel.dll文件放在了错误的目录中。

就我而言,它们位于[...]/jdk1.7.0_09/bin/而不是[...]/jre7/bin/,尽管不同版本的 Java 的路径可能不同。

毕竟这是逻辑,如果我们希望我们的 JAR 在我们的 IDE 之外运行,我们必须在我们的 java 运行环境中拥有 dll,而不是在我们的开发环境中:)

于 2012-11-26T17:37:12.647 回答
3

我通过添加 rxtxSerial.dll[jre 1.8.0_45/bin] 和 RxTxcomm.jar[jre 1.8.0_45/lib/ext] 解决了这个问题

于 2015-05-18T10:00:14.660 回答
2

嗨,我在 Ubuntu 11.10 下将 RXTXcomm 集成到 Netbeans 时遇到了同样的问题。我猜您没有将文件复制到正确的位置,至少这是我的问题。

在 Ubuntu 下,java 安装在 usr/lib/jvm 下。但是在这里我有很多 forders(例如java-7-openjdk-i386java-7-commonjava-6-openjdk ...)。在 Netbeans 中,我检查项目中包含的 JDK 的路径是什么,它是java-7-openjdk-i386。所以我把rxtxSerial.so(在windows下是rxtxSerial.dll)复制到java-7-openjdk-i386/jre/bin,它就像一个魅力。

我希望这有帮助。

于 2011-11-20T13:44:36.823 回答
2

即使在 Java\jdk\lib 目录中安装 RXTXcomm.jar 后,我也遇到了同样的问题。根据http://www.jcontrol.org/download/readme_rxtx_en.html上的说明, 我找到了 rxtxSerial.dll 和 rxtxParallel.dll 文件。将它们放在 bin 目录中没有帮助,但是将它们与 RXTXcomm.jar 一起放在 lib 目录中解决了问题。

于 2012-09-09T20:32:15.710 回答
1

我有同样的问题。所以我安装了 JDK 32 位并将这些RxTx文件(x86)添加到Program files(x86)/java/...文件夹而不是Program files/java...文件夹。我还将那些RxTx .dll 文件(x86)添加到/System32文件夹中。之后,问题在我的应用程序中得到解决。

于 2012-04-29T14:42:11.973 回答
1

固定的:

当使用诸如 Netbeans 之类的 IDE 时,它有自己的 JRE 目录,您是否可能安装了 RXTX 驱动程序,但是在 IDE 外部运行 JAR 文件时会发生此错误... 解决方案是在 JAVA JRE 目录中安装 RXTX 驱动程序用于运行所有 JAR 文件。

于 2012-11-27T08:20:32.333 回答
0

在 Windows 上的 Netbeans 5.5 下,我需要右键单击屏幕左侧 Projects 下的 Libraries,然后选择“Add JAR/Folder”,选择 RXTXcomm.jar 文件。只有那时我的

enter code here

成为有效的命令。另外,我遇​​到了一个运行时错误,它无法加载 rxtxSerial.DLL 库,因为它找不到它。我需要右键单击项目名称,选择属性,在类别下选择运行,并添加一个VM选项:条目

-Djava.library.path="C:\where-ever-you-stuck-rxtxSerial.DLL-file;%PATH%

例子:

-Djava.library.path="C:\rxtx-2.1-7-bins-r2\Windows\i368-mingw32\;%PATH%"

虽然我确信将目录添加到路径中的方法不止一种,但这对我有用。注意我做了默认的 NetBeans 5.5/JDK 1.6.0 并没有接受所有默认选项(即单击下一步直到我完成),所以我没有修改我的 java 路径或任何东西。或者,您可以将 *.dll 复制到 C:\Windows\System32\,Java 会自动在那里找到它。

请注意,运行 64 位 JRE 时不能使用 32 位 DLL:您将收到类似于以下内容的错误:

Can't load IA 32-bit .dll on a AMD 64-bit platform thrown while loading gnu.io.RXTXCommDriver

要解决这个问题,只需安装 32 位 JDK 并在 Netbeans 中的 Tools->Java Platforms->Add Platform 下添加一个新平台,然后更改项目设置以使用新创建的平台。确保你输入

"import gnu.io.*"

来自http://rxtx.qbang.org/wiki/index.php/Using_RXTX_In_NetBeans

于 2016-08-17T15:36:55.350 回答
0

我有同样的问题。我试图从 dist 文件夹运行构建的 jar 文件,即使它在 NetBeans IDE 中运行也无法正常工作。我将 rxtxSerial.dll 文件复制到我的主 jar 文件所在的 dist 文件夹中,它开始正常工作。

我之前遇到过这个错误:

java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while
loading gnu.io.RXTXCommDriver
Exception in thread "Thread-7" java.lang.UnsatisfiedLinkError: no rxtxSerial in
java.library.path
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:123)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at org.smslib.helper.CommPortIdentifier.<clinit>(CommPortIdentifier.java
:72)
        at org.smslib.modem.SerialModemDriver.connectPort(SerialModemDriver.java
:69)
        at org.smslib.modem.AModemDriver.connect(AModemDriver.java:114)
        at org.smslib.modem.ModemGateway.startGateway(ModemGateway.java:189)
        at org.smslib.Service$1Starter.run(Service.java:277)
于 2019-03-12T18:56:09.900 回答
0

我有同样的问题,在 Windows 10 和 Eclipse 上,问题是我有 32 位和 64 位的 java,所以我安装了 64 位的 RXTX 库,但 Eclipse 使用的是 32 位 Java 环境,所以我所做的是下载 RXTX 32 位按照 RXTX 的说明将必要的文件复制到 C:ProgramFilesx86/JAVA_HOME,问题就解决了。希望这对任何人都有帮助。

于 2017-02-13T05:21:18.287 回答