java.lang.UnsatisfiedLinkError:java.library.path中没有rxtxSerial

我正在尝试使用64位Windows 7和Eclipse的64位rxtx串行通信库(从cloudhopper下载)。 我收到消息: java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path 。 这些DLL在/jre/lib目录以及Windows/System32RXTXcomm.jar位于eclipse的构buildpath以及jre/lib/ext目录中。 我在后台运行进程监视器,看到RXTXcomm.jarrxtxSerial.dllrxtxParallel.dll都被find​​并已被打开,所以我不清楚为什么会出现这个问题。

有什么build议么。

转到项目 – >属性 – > Java构buildpath – >find你的.jar。 点击+打开JAR的属性。 select本机库位置并编辑它指向RXTX的共享库(.DLL,.so,.dylib)。

你可以从Ubuntu的repo安装librxtx-java软件包。

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

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

要么

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

这对我有效。 另请参阅此问题 。

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

在我的情况下,它们在[…] / jdk1.7.0_09 / bin /中,而不是在/ jre7 / bin /中 ,尽pipe对于不同版本的Java,path可能会有所不同。

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

Hy,在Ubuntu 11.10下将RXTXcomm集成到Netbeans中时遇到了同样的问题。 我猜你不是在正确的地方复制文件,至less那是我的问题。

在Ubuntu下,java安装在usr / lib / jvm下。 但是在这里我有很多forders(例如java-7-openjdk-i386java-7-commonjava-6-openjdk …)。 在Netbeans中,我检查包含到项目中的JDK的path,它是java-7-openjdk-i386 。 所以我采取了rxtxSerial.so(在Windows下它是rxtxSerial.dll),并将其复制到java-7-openjdk-i386 / jre / bin ,它的工作就像一个魅力。

我希望这有帮助。

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

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

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

固定:

当使用IDE这样的Netbeans它有它自己的JRE目录,你可能安装了你的RXTX驱动程序,但是当你在IDE外部运行JAR文件时,会发生这个错误… 解决方法是在JAVA JRE目录中安装RXTX驱动程序用来运行你所有的JAR文件。

在Windows下的Netbeans 5.5下,我需要右键单击屏幕左侧的Projects下的Libraries,然后select“Add JAR / Folder”,selectRXTXcomm.jar文件。 只有这样做了我的

 enter code here 

成为一个有效的命令。 另外,我得到了一个运行时错误,因为找不到rxtxSerial.DLL库。 我需要右键单击项目名称,select属性,select在类别下运行,然后添加一个虚拟机选项:条目

-Djava.library.path =“C:\其中,不断你-卡住rxtxSerial.DLL文件;%PATH%

例:

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

虽然我确定有不止一种方式将目录添加到您的path,但这对我有效。 注意我做了默认的NetBeans 5.5 / JDK 1.6.0 isntall接受所有的默认选项(即点击下一步,直到我完成),所以我没有修改我的Javapath或任何东西。 或者,您可以将* .dll复制到C:\ Windows \ System32 \中,Java会自动find它。

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

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

要解决这个问题,只需在工具 – > Java平台 – >添加平台下安装32位JDK并在Netbeans中添加一个新平台,然后更改项目设置以使用新创build的平台。 确保你input

"import gnu.io.*"

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

我有同样的问题,在Windows 10和Eclipse,问题是我有32位和64位的Java,所以我安装了RXTX库64位,但日食是使用32位Java环境,所以我做了下载RXTX 32位将所需文件复制到C:ProgramFilesx86 / JAVA_HOME中,如RXTX的说明中所述,问题已解决。 希望这有助于任何人。