我正在尝试使用64位rxtx串行通信库(从cloudhopper下载)和64位Windows 7和eclipse。我收到消息:
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
。 dll位于/jre/lib
目录以及Windows/System32
。 RXTXcomm.jar
位于eclipse的构建路径中以及jre/lib/ext
目录中。我在后台运行了进程监视器,看到RXTXcomm.jar
,rxtxSerial.dll
和rxtxParallel.dll
都已找到并已打开,所以我不清楚为什么会出现此问题。
任何建议。
答案 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的说明,问题解决了。希望这有助于任何人。