#java #arduino #raspberry-pi #raspberry-pi3 #arduino-ide
#java #arduino #raspberry-pi #raspberry-pi3 #arduino-ide
Вопрос:
На моем Raspberry Pi у меня чистая установка Raspbian, поверх которой я установил openhab. Я хотел бы использовать pi для программирования подключенных arduino, поэтому я установил Arduino IDE. Однако при попытке запустить его я получаю эту ошибку:
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:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:123)
at processing.app.Editor.populateSerialMenu(Editor.java:962)
at processing.app.Editor.buildToolsMenu(Editor.java:691)
at processing.app.Editor.buildMenuBar(Editor.java:476)
at processing.app.Editor.<init>(Editor.java:205)
at processing.app.Base.handleOpen(Base.java:705)
at processing.app.Base.handleOpen(Base.java:670)
at processing.app.Base.handleNew(Base.java:566)
at processing.app.Base.<init>(Base.java:306)
at processing.app.Base.main(Base.java:195)
Я установил librxtx-java
, но arduino IDE по-прежнему испытывает проблемы с поиском этой библиотеки. Кто-нибудь сталкивался с подобной проблемой?
Ответ №1:
Я думаю, проблема в том, что Arduino поставляет свою собственную установку java. Когда вы запускаете Arduino-IDE, вы просто вызываете bash-скрипт, который внутренне запускает java (поставляемую arduino) для запуска IDE (таким образом, Arduino-IDE работает в системах, где java вообще не установлена).
Теперь, когда вы установили librxtx-java
на свой raspberry, вы установили эту библиотеку в свой каталог systems-java-library. Java, поставляемая Arduino, ничего не знает об этой библиотеке.
Попробуйте связать (или скопировать) вашу librxtx.jar
в вашу <arduino_installation>/java/lib
папку.
(к сожалению, я не могу попробовать это сам, потому что у меня сейчас нет с собой raspberry ;))
Ответ №2:
Таким образом, Arduino IDE, вероятно, не поставлялась с собственной версией java, поскольку я не нашел ее непосредственно в папке / usr / share / arduino, поэтому я предполагаю, что она использовала java, которая уже была установлена. После пары попыток я отредактировал /usr/bin/arduino и добавил -Djava.library.path=/usr/lib/jni
в команду java. Теперь полная команда выглядит так:
java -Djava.library.path=/usr/lib/jni -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel processing.app.Base "$@"
и Arduino IDE запустилась после этого.
Комментарии:
1. О, хорошо, приятно слышать, что вы решили свою проблему. Я заглянул в свою arduino-installation, чего я не делал через мой менеджер пакетов. Я загрузил файл arduino-1.8.8.tar с arduino.cc и извлек его в
/opt/arduino
. При этом arduino поставляется со своей собственной java-версией. В любом случае, удачи с вашим проектом 🙂