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

时间:2011-11-19 21:53:51

标签: java rxtx

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

任何建议。

11 个答案:

答案 0 :(得分:15)

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

答案 1 :(得分:7)

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

答案 2 :(得分:6)

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

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

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

这对我有用。另请参阅此question

答案 3 :(得分:4)

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

在我的情况下,他们在 [...] / jdk1.7.0_09 / bin / 而不是 [...] / jre7 / bin / ,虽然不同版本的Java的路径可能不同。

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

答案 4 :(得分:3)

我通过添加rxtxSerial.dll [jre 1.8.0_45 / bin]和RxTxcomm.jar解析此问题[jre 1.8.0_45 / lib / ext]

答案 5 :(得分:2)

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

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

我希望这会有所帮助。

答案 6 :(得分:2)

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

答案 7 :(得分:1)

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

答案 8 :(得分:1)

<强> FIXED:

当使用IDE这样的Netbeans它有自己的JRE目录时,你是否安装了你的RXTX驱动程序,但是当你在IDE外运行JAR文件时会出现这个错误...... 解决方案是在JAVA JRE目录中安装RXTX驱动程序,用于运行所有JAR文件。

答案 9 :(得分:0)

  

在Windows上的Netbeans 5.5下,我需要右键单击下面的库   屏幕左侧的项目,然后选择“添加”   JAR / Folder“,选择RXTXcomm.jar文件。只有这样才能完成

enter code here
  

成为有效的命令。   此外,我遇到运行时错误,无法加载   rxtxSerial.DLL库因为无法找到它。我需要   右键单击项目名称,选择属性,然后选择“运行”   类别,并添加VM选项:

条目

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

  

示例:

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

虽然我确定添加目录的方法不止一种   你的道路,这对我有用。注意我做了默认的NetBeans 5.5 / JDK   1.6.0 isntall接受所有默认选项(即点击下一步直到我完成),所以我没有修改我的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在工具 - &gt; Java平台 - &gt;添加平台并更改   项目设置使用新创建的平台。确保你输入

"import gnu.io.*"

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

答案 10 :(得分:0)

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