2011-11-19 230 views
13

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

有任何建议。

回答

2

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

在Ubuntu下,java安装在usr/lib/jvm下。但在这里我有很多forders(例如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,它的工作就像一个魅力。

我希望这会有所帮助。

+0

我已阅读,以及和我都放置在正确的地方的dll文件和罐子和过程监控表明JVM看到他们。这就是我困惑的原因。 – sldahlin

+0

这有助于我在Ubuntu 12.10上设置Eclipse。谢谢。 – Kasisnu

6

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

+2

奇怪的是,它安装在我的系统上,但我收到了这条消息。奇怪的。 –

+1

@Doc它可以工作,如果你指定的位置,Java ** - Djava.library.path =/usr/lib/jni ** -jar YourApp.jar –

1

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

4

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

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

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

为我工作。另请参阅此question

2

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

4

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

在我的情况下,他们在[...]/jdk1.7.0_09/bin/而不是[...]]/jre7/bin/,尽管对于不同版本的Java,路径可能会有所不同。

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

1

FIXED:

使用IDE,比如Netbeans的,当它有它的JRE自己的目录,是你可能安装在您的RXTX驱动程序,但运行的JAR文件的IDE之外时,会发生这个错误... 解决方案也安装JAVA里面的RXTX驱动程序JRE目录,用于运行所有JAR文件。

11

转到项目 - >属性 - > Java构建路径 - >找到你的.jar。 点击+打开JAR的属性。 选择本机库位置并将其编辑为指向RXTX的共享库(.DLL,.so,.dylib)。

+1

它帮助,最简单和最快的方式。 ;) –

2

我加入rxtxSerial.dll [JRE 1.8.0_45 /斌]和RxTxcomm.jar [JRE 1.8.0_45/lib/ext目录]解决此问题

+0

设置构建路径为jre 1.8.0_45/lib/ext/RxTxComm.jar –

+0

[link](http://jlog.org/rxtx-win.html)下载.dll和.jar –

0

Under Netbeans 5.5 on Windows, I needed to right-click Libraries under Projects on the left hand side of the screen, and select "Add JAR/Folder", picking the RXTXcomm.jar file. Only then did my

enter code here 

become a valid command. Also, I got a run-time error where it failed to load the rxtxSerial.DLL library because it couldn't find it. I needed to right-click the project name, select properties, select Run under categories, and add a VM Options: entry of

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

Example:

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

While I'm sure there is more than one way of adding the directory to your path, this worked for me. Note I did the default NetBeans 5.5/JDK 1.6.0 isntall accepting all the default options(ie clicking next until I got to finish), so I haven't modified my java paths or anything. Alternatively you can copy the *.dll into C:\Windows\System32\, Java will find it there automatically.

需要注意的是运行64位JRE时,你不能使用32位的DLL: 您将得到类似的错误:

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

To solve this simply install the 32bit JDK and add a new Platform in Netbeans under Tools->Java Platforms->Add Platform and change the project settings to use the newly created platform. make sure you type

"import gnu.io.*"

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

0

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

相关问题