Вопрос по java – java.lang.UnsatisfiedLinkError: нет rxtxSerial в java.library.path, брошенном во время загрузки gnu.io.RXTXCommDriver

8

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

Кажется, у вас нет библиотек. user1335794
Пожалуйста, опубликуйте код Java, который вы используете для загрузки библиотеки. Santosh

Ваш Ответ

5   ответов
0
Copy RXTXcomm.jar ---> <JAVA_HOME>\jre\lib\ext

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

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

3

установленной из репозиториев. В ununtu netbeans проект не запускался из IDE, но работал нормально как jar.

Решено путем помещения * .so файлов в/usr/lib не/usr/lib/jni папка.

Лучший ответ! Этот метод работает и для pidora: thumbsup noelyahan
У меня это тоже работает в Распбиане! Сначала я установил драйверы RXTX, используяsudo apt-get install librxtx-java а затем скопировал все файлы / usr / lib и все заработало! Ranhiru Cooray
1

чтобы исправить это было

Используйте двоеточие ":" для разделения элементов java.library.path Используйте косую черту для разделителей каталогов

В нашем случае мы использовали относительный путь как этот

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

Путь относительно пути запуска. Например. при запуске из netbeans каталог запуска является каталогом проекта.

7

-Djava.library.path параметры, а второй перезаписывает значение первого. Значение также должно быть путем к папке, содержащей библиотеку, не включая имя библиотеки.

В системе Linux вы должны комбинировать оба параметра пути, используя двоеточие в качестве разделителя:

-Djava.library.path=/usr/lib/rxtx:/usr/lib/jni
Спасибо. Это был мой запрос, он работает. YumYumYum
1

properties -> Путь сборки Java -> Найдите свой .jar. Нажмите +, чтобы открыть свойства JAR. Выберите расположение нативной библиотеки и измените его так, чтобы он указывал на общую библиотеку RXTX (.DLL, .so, .dylib).

Похожие вопросы