2012-05-25 62 views
8

Fedora現在正在使用(包安裝了Package rxtx-2.2-0.5.20100211.fc15.i686 already installed and latest version )。java.lang.UnsatisfiedLinkError:java.library.path中沒有rxtxSerial加載時拋出gnu.io.RXTXCommDriver

我用/嘗試:

# locate librxtxSerial 
/home/sun/Downloads/rxtx-2.1-7-bins-r2/Linux/i686-unknown-linux-gnu/librxtxSerial.so 
/home/sun/Downloads/rxtx-2.1-7-bins-r2/Linux/ia64-unkown-linux-gnu/librxtxSerial.so 
/home/sun/Downloads/rxtx-2.1-7-bins-r2/Linux/x86_64-unknown-linux-gnu/librxtxSerial.so 
/home/sun/Downloads/rxtx-2.1-7-bins-r2/Mac_OS_X/librxtxSerial.jnilib 
/home/sun/Downloads/rxtx-2.1-7-bins-r2/Solaris/sparc-solaris/sparc32-sun-solaris2.8/librxtxSerial-2.1-7.so 
/home/sun/Downloads/rxtx-2.1-7-bins-r2/Solaris/sparc-solaris/sparc32-sun-solaris2.8/librxtxSerial.so 
/home/sun/Downloads/rxtx-2.1-7-bins-r2/Solaris/sparc-solaris/sparc64-sun-solaris2.8/librxtxSerial-2.1-7.so 
/home/sun/Downloads/rxtx-2.1-7-bins-r2/Solaris/sparc-solaris/sparc64-sun-solaris2.8/librxtxSerial.so 
/usr/lib/rxtx/librxtxSerial-2.2pre1.so 
/usr/lib/rxtx/librxtxSerial.so 

然後使用:

-Djava.library.path=/usr/lib/rxtx/librxtxSerial.so -Djava.library.path=/usr/lib/jni 

但我仍然總是得到這樣以下幾點:

java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver 
Exception in thread "main" java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path 
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1681) 
    at java.lang.Runtime.loadLibrary0(Runtime.java:840) 
    at java.lang.System.loadLibrary(System.java:1047) 
    at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83) 
    at main.Tty.sendCommand1(Tty.java:212) 
    at main.Tty.main(Tty.java:236) 

如何解決這個問題?

追問:

WRONG:

-Djava.library.path=/usr/lib/rxtx -Djava.library.path=/usr/lib/jni

正確

-Djava.library.path=/usr/lib/jni -Djava.library.path=/usr/lib/rxtx

+0

看來你有一些庫丟失。 – user1335794

+0

請發佈您用來加載lib的java代碼。 – Santosh

回答

7

我想這個問題是你有多個-Djava.library.path參數,第二個是覆蓋價值的第一。該值也應該是包含庫的文件夾的路徑,不包括庫名稱。

在Linux系統中,你應該能夠使用冒號作爲分隔兩個路徑參數組合:

-Djava.library.path=/usr/lib/rxtx:/usr/lib/jni 
+0

謝謝。這是我的查詢,它的工作原理。 – YumYumYum

1

我們不得不在Linux同樣的問題。 關鍵爲我們解決它是

  1. 使用冒號「:」爲目錄分隔符分隔的java.library.path元素
  2. 使用斜槓

在我們的例子中,我們所用的相對這樣的路徑

-Djava.library.path=jar/linux64:jars 

該路徑是相對於啓動路徑。例如。當從netbeans運行時,啓動目錄是項目目錄。

3

與從存儲庫安裝的v4l4j庫相同的問題。在ununtu netbeans項目無法從IDE啓動,但作爲罐子工作得很好。

通過將* .so文件放到/usr/lib而不是/usr/lib/jni文件夾解決。

+0

最好的答案!這種方法也適用於pidora os:thumbsup – noelyahan

+1

這在Raspbian中也適用於我!我首先使用'sudo apt-get install librxtx-java'安裝了RXTX驅動程序,然後複製了所有文件/ usr/lib並且它工作正常! –

1

項目 - >屬性 - > Java構建路徑 - >找到你的.jar。 點擊+打開JAR的屬性。 選擇本機庫位置並將其編輯爲指向RXTX的共享庫(.DLL,.so,.dylib)。

0
Copy RXTXcomm.jar ---> <JAVA_HOME>\jre\lib\ext 

Copy rxtxSerial.dll ---> <JAVA_HOME>\jre\bin

Copy rxtxParallel.dll ---> <JAVA_HOME>\jre\bin

相關問題