2011-11-19 231 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的說明中所示,問題已解決。希望這有助於任何人。

相關問題