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上遇到了同样的问题。 我们解决这个问题的关键是
- 使用冒号“:”分隔java.library.path元素
- 对目录分隔符使用正斜杠
在我们的例子中,我们使用了这样的相对路径
-Djava.library.path=jar/linux64:jars
该路径相对于启动路径。 例如,当从netbeans运行时,启动目录是项目目录。
项目 – >属性 – > Java构建路径 – >查找.jar。 单击+打开JAR的属性。 选择本机库位置并编辑它以指向RXTX的共享库(.DLL,.so,.dylib)。
Copy RXTXcomm.jar ---> \jre\lib\ext
Copy rxtxSerial.dll --->
Copy rxtxParallel.dll --->