Подтвердить что ты не робот

Java.lang.UnsatisfiedLinkError: no rxtxSerial в java.library.path

Я пытаюсь использовать 64-битную rxtx последовательную коммуникационную библиотеку (загруженную из cloudhopper) с 64-битными окнами 7 и затмением. Я получаю сообщение: java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path. Dll находятся в директории /jre/lib, а также в Windows/System32. RXTXcomm.jar находится в пути сборки для eclipse, а также в директории jre/lib/ext. Я запустил монитор процесса в фоновом режиме и увидел, что RXTXcomm.jar, rxtxSerial.dll и rxtxParallel.dll все найдены и были открыты, поэтому я не понимаю, почему эта проблема возникает.

Любые предложения.

4b9b3361

Ответ 1

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

Ответ 2

Вы можете установить пакет librxtx-java из репо для Ubuntu.

Ответ 3

Вы также можете добавить аргумент виртуальной машины:

-Djava.library.path=c:\path\to\dll\

или

-Djava.library.path=/path/to/lib/

Это сработало для меня. Также обратитесь к question.

Ответ 4

Пользователь Windows: моя проблема заключалась в том, что я помещал файлы rxtxSerial.dll и rxtxParallel.dll в неправильный каталог.

В моем случае они были в [...]/jdk1.7.0_09/bin/ вместо [...]/jre7/bin/, хотя пути могут отличаться для разных версий Java.

В конце концов, если мы хотим, чтобы наш JAR запускался за пределами нашей среды IDE, мы должны иметь DLL в нашей среде java, а не в нашей среде разработки:)

Ответ 5

Я разрешаю эту проблему, добавляя rxtxSerial.dll [jre 1.8.0_45/bin] и RxTxcomm.jar [jre 1.8.0_45/lib/ext]

Ответ 6

Hy, у меня была такая же проблема при интеграции RXTXcomm в Netbeans под Ubuntu 11.10. Я предполагаю, что вы не копируете файлы в нужном месте, по крайней мере, это была моя проблема.

В Ubuntu java устанавливается под usr/lib/jvm. НО здесь у меня было много трейдеров (ex java-7-openjdk-i386, java-7-common, java-6-openjdk...). В Netbeans я проверяю, какой путь JDK включен в проект, это был java-7-openjdk-i386. поэтому я взял rxtxSerial.so(под окнами это rxtxSerial.dll) и скопировал его в java-7-openjdk-i386/jre/bin, и он работал как шарм.

Надеюсь, это поможет.

Ответ 7

У меня была такая же проблема даже после установки RXTXcomm.jar в каталоге Java\jdk\lib. Основываясь на инструкциях http://www.jcontrol.org/download/readme_rxtx_en.html Я нашел файлы rxtxSerial.dll и rxtxParallel.dll. Размещение их в каталоге bin не помогло, но размещение их в каталоге lib вместе с RXTXcomm.jar решило проблему.

Ответ 8

У меня была та же проблема. Поэтому я установил 32-разрядный JDK и добавил эти файлы RxTx (x86) в папку Файлы программ (x86)/java/... вместо Программные файлы /java.... Также я добавил эти файлы RxTx.dll(x86) в папку /System32. После этого проблема была решена в моем приложении.

Ответ 9

ИСПРАВЛЕНО:

При использовании IDE таких Netbeans у него есть собственный каталог для JRE, возможно, вы установили драйверы RXTX, но при запуске JAR файла вне вашей среды IDE эта ошибка возникает... Решение устанавливает драйверы RXTX также в каталоге JAVA JRE, которые используют для запуска всех ваших JAR файлов.

Ответ 10

В среде Netbeans 5.5 в Windows мне нужно было щелкнуть правой кнопкой мыши Библиотеки в Проекты в левой части экрана и выберите "Добавить JAR/Folder", выбрав файл RXTXcomm.jar. Только тогда мой

enter code here

станет действительной командой. Кроме того, я получил ошибку во время выполнения, когда он не смог загрузить rxtxSerial.DLL, потому что он не смог ее найти. я нуждался в щелкните правой кнопкой мыши имя проекта, выберите свойства, выберите "Выполнить" категорий и добавьте параметры виртуальной машины: запись

-Djava.library.path = "C:\где-нибудь вы-константных rxtxSerial.DLL файл;% PATH%

Пример:

-Djava.library.path="C:\rxtx-2.1-7-bins-r2\Windows\i368-mingw32\;%PATH%"

Хотя я уверен, что существует несколько способов добавления каталога в ваш путь, это сработало для меня. Примечание. Я сделал по умолчанию NetBeans 5.5/JDK 1.6.0 не принимает все параметры по умолчанию (т.е. Нажимает дальше, пока я не закончу), поэтому я не изменил свои пути Java или что-то еще. Кроме того, вы можете скопировать *.dll в C:\Windows\System32 \, Java найдет его там автоматически.

Обратите внимание: вы не можете использовать 32-битную DLL при работе 64-битной JRE: Вы получите сообщение об ошибке:

Can't load IA 32-bit .dll on a AMD 64-bit platform thrown while loading gnu.io.RXTXCommDriver

Чтобы решить эту проблему, просто установите 32-битный JDK и добавьте новую платформу в Netbeans в разделе Инструменты- > Платформы Java- > Добавить платформу и изменить настройки проекта для использования вновь созданной платформы. убедитесь, что вы набрали

"import gnu.io.*"

из http://rxtx.qbang.org/wiki/index.php/Using_RXTX_In_NetBeans

Ответ 11

У меня была такая же проблема, в Windows 10 и eclipse, у probelm была java для 32 и 64 бит, поэтому я установил библиотеку RXTX для 64 бит, но eclipse использовал 32-битную среду java, поэтому я сделал это скачать RXTX для 32 бит копировать необходимые файлы на C: ProgramFilesx86/JAVA_HOME, как в инструкции для RXTX, и проблема была решена. Надеюсь, это поможет кому угодно.

Ответ 12

У меня была такая же проблема. Я пытался запустить встроенный файл JAR из папки dist, и он не работал, даже если он работал из IDE NetBeans. Я скопировал файл rxtxSerial.dll в папку dist, где находился мой основной файл jar, и он начал работать нормально.

У меня была эта ошибка раньше:

java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while
loading gnu.io.RXTXCommDriver
Exception in thread "Thread-7" java.lang.UnsatisfiedLinkError: no rxtxSerial in
java.library.path
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:123)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at org.smslib.helper.CommPortIdentifier.<clinit>(CommPortIdentifier.java
:72)
        at org.smslib.modem.SerialModemDriver.connectPort(SerialModemDriver.java
:69)
        at org.smslib.modem.AModemDriver.connect(AModemDriver.java:114)
        at org.smslib.modem.ModemGateway.startGateway(ModemGateway.java:189)
        at org.smslib.Service$1Starter.run(Service.java:277)