現在使用している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.<clinit>(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
パラメータがあり、2番目のパラメータが最初のパラメータの値を上書きしていることだと思います。値は、ライブラリ名を含まず、ライブラリを含むフォルダへのパスでもある必要があります。
Linuxシステムでは、コロンを区切り文字として使用して、両方のパスパラメータを組み合わせることができるはずです。
-Djava.library.path=/usr/lib/rxtx:/usr/lib/jni
リポジトリからインストールされたv4l4jライブラリでも同じ問題が発生しました。 ununtuでは、netbeansプロジェクトはIDEから開始できませんでしたが、jarとしては正常に機能しました。
* .soファイルを/usr/lib
フォルダーではなく/usr/lib/jni
に配置することで解決しました。
プロジェクト->プロパティ-> Javaビルドパス->。jarを検索します。+をクリックしてJARのプロパティを開きます。ネイティブライブラリの場所を選択し、RXTXの共有ライブラリ(.DLL)を指すように編集します。 、.so、.dylib)。
Copy RXTXcomm.jar ---> <Java_HOME>\jre\lib\ext
Copy rxtxSerial.dll ---> <Java_HOME>\jre\bin
Copy rxtxParallel.dll ---> <Java_HOME>\jre\bin
Linuxでも同じ問題が発生しました。それを修正するための鍵は
私たちの場合、このような相対パスを使用しました
-Djava.library.path=jar/linux64:jars
パスはスタートアップパスを基準にしています。例えば。 netbeansから実行する場合、起動ディレクトリはプロジェクトディレクトリです。