java.lang.UnsatisfiedLinkError:加载gnu.io.RXTXCommDriver时抛出的java.library.path中没有rxtxSerial

现在使用Fedora(已安装Package rxtx-2.2-0.5.20100211.fc15.i686 already installed and latest version )。

我用过/试过了:

 # 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.(CommPortIdentifier.java:83) at main.Tty.sendCommand1(Tty.java:212) at main.Tty.main(Tty.java:236) 

怎么解决这个?

跟进:

错误:

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

正确

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

我想问题是你有多个-Djava.library.path参数,第二个是覆盖第一个的值。 该值还应该是包含库的文件夹的路径,不包括库名。

在linux系统上,你应该能够使用冒号作为分隔符来组合两个路径参数:

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

与从存储库安装的v4l4j库有同样的问题。 ununtu netbeans项目未能从IDE启动,但作为jar工作正常。

通过将* .so文件放到/usr/lib而不是/usr/lib/jni文件夹来解决。

我们在linux上遇到了同样的问题。 我们解决这个问题的关键是

  1. 使用冒号“:”分隔java.library.path元素
  2. 对目录分隔符使用正斜杠

在我们的例子中,我们使用了这样的相对路径

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

该路径相对于启动路径。 例如,当从netbeans运行时,启动目录是项目目录。

项目 – >属性 – > Java构建路径 – >查找.jar。 单击+打开JAR的属性。 选择本机库位置并编辑它以指向RXTX的共享库(.DLL,.so,.dylib)。

 Copy RXTXcomm.jar ---> \jre\lib\ext 

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

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