ошибка при попытке запустить Arduino IDE на Raspberry Pi

#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-версией. В любом случае, удачи с вашим проектом 🙂