[JAVA] Ich war süchtig nach RXTX mit Sierra

Eine Geschichte, von der ich süchtig war, als ich versuchte, mit Eclipse unter macOS Sierra seriell mit Arduino zu kommunizieren.

Ausführungsumgebung

RXTX

Überblick

Eine Bibliothek für die serielle Kommunikation mit Mikrocomputern wie Arduino. Windows, Mac und Linux werden unterstützt. Ich fuhr mit Bezug auf die folgende Seite fort. http://cho-kotan.blogspot.jp/2012/10/javaavrmacjavaavr.html

herunterladen

Laden Sie rxtx-2.1-7-bins-r2.zip auf der folgenden Seite herunter http://rxtx.qbang.org/wiki/index.php/Download

Dateien verschieben

Extrahieren Sie die heruntergeladene Datei und verschieben Sie die heruntergeladene Datei mit dem folgenden Befehl in den Ordner für die externe Bibliothek.

$ cd <download_folder>/rxtx-2.1-7-bins-r2
$ sudo cp RXTXcomm.jar /Library/Java/Extensions/
$ sudo cp Mac_OS_X/librxtxSerial.jnilib /Library/Java/Extensions/

Führen Sie den folgenden Befehl aus, da ein Verzeichnis für die ausschließliche Steuerung von RXTX erforderlich ist.

$ sudo mkdir /var/lock
$ sudo chmod 777 /var/lock

Übergeben Sie den Pfad mit Eclipse

  1. Klicken Sie in Eclipse mit der rechten Maustaste auf den aktuellen Projektordner-> [Eigenschaften]
  2. Java Build Path-> Library
  3. [Externe JAR hinzufügen] -> Wählen Sie im Verzeichnis Extensions RXTXcomm.jar aus.
  4. Wählen Sie das Verzeichnis Extensions für [Native Library Location] in RXTXcomm.jar aus, das unter [JAR- und Klassenordner im Erstellungspfad] angezeigt wird.
  5. OK

Lauf

Kopieren Sie den Quellcode der folgenden URL, auf die Sie verwiesen haben, und führen Sie ihn unverändert aus. http://cho-kotan.blogspot.jp/2012/10/javaavrmacjavaavr.html

Dann der folgende Fehler

java.lang.UnsatisfiedLinkError: /Library/Java/Extensions/librxtxSerial.jnilib: dlopen(/Library/Java/Extensions/librxtxSerial.jnilib, 1): no suitable image found.  Did find:
/Library/Java/Extensions/librxtxSerial.jnilib: no matching architecture in universal wrapper thrown while loading gnu.io.RXTXCommDriver

Ich erhalte eine Fehlermeldung bezüglich des Links, bin jedoch verärgert, dass beim Lesen von "gnu.io.RXTXcommDriver" ein Fehler aufgetreten ist. Es scheint also, dass der Pfad ordnungsgemäß funktioniert. Es hat nicht funktioniert, egal wie oft ich es versucht habe, also habe ich es untersucht.

Es war ein Versionsproblem

Ich wusste nicht, ob es nicht unterstützt wurde, weil es Sierra war oder Java nicht unterstützt wurde, also suchte ich verschieden und fand die folgende Seite. http://blog.brianhemeryck.me/installing-rxtx-on-mac-os-mountain-lion/

Dem Artikel zufolge scheint die von der offiziellen Seite heruntergeladene Datei "librxtxSerial.jnilib" nur Java 5 zu unterstützen, und ähnliche Fehler können bei Java 6 und höher von Mountain Lion (Eclipse's) auftreten. Es kann von der Umgebung abhängen ...).

Löschen Sie daher die Datei "librxtxSerial.jnilib" aus der Erweiterungsdatei und laden Sie die Java 6-kompatible Version auf der folgenden Seite herunter. http://blog.iharder.net/2009/08/18/rxtx-java-6-and-librxtxserial-jnilib-on-intel-mac-os-x/#comment-163295

$ rm /Library/Java/Extensions/librxtxSerial.jnilib
$ cp <download_folder>/librxtxSerial.jnilib /Library/Java/Extensions/

Führe es nochmals aus

Da der Pfad der externen JAR-Datei in der vorherigen Einstellung in Eclipse festgelegt wurde, führen Sie ihn in Eclipse so aus, wie er ist, wenn der obige Befehl ausgeführt wird.

Der von Arduino gelesene Wert wurde sicher auf der Konsole angezeigt.

Fazit

Die von der offiziellen Seite heruntergeladene Bibliotheksdatei unterstützte die neue Java-Version nicht.

Referenzseite

Recommended Posts

Ich war süchtig nach RXTX mit Sierra
Wovon ich süchtig war, als ich rspec auf Schienen benutzte
Ich war süchtig danach, sbt zu starten
Ich war süchtig danach, die Update-Anweisung in MyBatis zu wiederholen
Ich war seltsamerweise süchtig danach, Javas Stream-API mit Scala zu verwenden
Ich war süchtig danach, in @ SpringApplicationConfiguration-> @SpringBootTest umzuschreiben
Ich war süchtig nach der Rollmethode
Ich war süchtig nach dem Spring-Batch-Test
Ein Hinweis, als ich süchtig danach war, Ubuntu auf WSL1 in WSL2 zu konvertieren
[Rails] Ich war süchtig nach den Nginx-Einstellungen, als ich Action Cable verwendete.
Eine Geschichte, der ich beim Testen der API mit MockMVC verfallen war
Ich war süchtig danach, onActivityResult () mit DialogFragment zu machen
Ich war süchtig nach NoSuchMethodError in Cloud-Endpunkten
Ich war süchtig nach der Aufzeichnung des zugehörigen Modells
Eine Geschichte, nach der ich süchtig war, als ich einen Schlüssel bekam, der automatisch auf MyBatis ausprobiert wurde
Wovon ich bei der Einführung der JNI-Bibliothek süchtig war
Was ich beim Update auf Spring Boot 1.5.12 behoben habe ・ Wovon ich süchtig war
Ich war süchtig danach, default_url_options mit der Einführung von Rails zu setzen
Ich war süchtig nach Laradock + VSCode + xdebug
Was ich mit der Redmine REST API süchtig gemacht habe
Die Geschichte, nach der ich beim Einrichten von STS süchtig war
Android Memo-I war süchtig nach Erlaubnis
[Circle CI] Eine Geschichte, der ich bei Start Building verfallen war
Ich möchte nur Java mit Eclipse auf meinem Mac schreiben
Wovon ich süchtig war, als ich die Google-Authentifizierung mit Rails implementierte
Über die Sache, dass ich süchtig danach war, wie man Hashmap benutzt
Ich habe versucht, den Kalender mit Java auf der Eclipse-Konsole anzuzeigen.
Ich war süchtig nach der API-Version min23 von registerTorchCallback
Memorandum: Wovon ich süchtig war, als ich auf die Accounting Freee API traf
Eine Geschichte, der ich mit der automatischen Starteinstellung von Tomcat 8 unter CentOS 8 zweimal verfallen war
Ich war süchtig danach, MySQL 8.0 mit einem 5.7-Gefühl zu berühren. My.cnf-Konfigurationsproblem
Ich war süchtig nach einem einfachen Test von Jedis (Java-> Redis-Bibliothek)
Probleme, denen ich beim Erstellen der Digdag-Umgebung mit Docker verfallen war
Aufgenommen, weil ich süchtig nach der Standardeingabe der Scannerklasse war
Ich möchte PHP 7.2 unter Ubuntu 20.04 installieren.
Ich war süchtig nach Scrollview, weil ich nicht auf die UIView mit variabler Größe tippen konnte
[Circle CI] Ich war süchtig nach dem automatischen Test von Circle CI (Rails + MySQL) [Memo]
Ich war ein wenig süchtig nach SSH-Verbindung von Mac zu Linux (Ubuntu)
Ich habe versucht, AdoptOpenjdk 11 unter CentOS 7 zu erstellen
Ich war süchtig nach Unit-Tests mit dem Pufferoperator in RxJava
Ich war süchtig danach, vom Docker-Container aus keine Verbindung zu AWS-S3 herstellen zu können
Ich war ein wenig süchtig nach dem S3-Prüfsummenvergleich, machen Sie sich also eine Notiz.
SpringSecurity Ich war süchtig danach, mich mit einem Hash-Passwort anzumelden (gelöst)
Ich habe versucht, Junit mit Mac VScode Maven zu verwenden
Ich habe versucht, einen Server mit Netty zu implementieren
Wovon ich süchtig war, als ich eine Spring Boot-Anwendung mit VS Code entwickelte
Beachten Sie, dass ich süchtig nach Stapelverarbeitung mit Spring Boot war
Bei der Erstellung einer persönlichen App habe ich mich gefragt, ob ich sie mit haml erstellen soll
Die CSV-Datei, die ich herunterladen konnte, wurde plötzlich auf der Seite angezeigt.
Der Teil, dem ich in "Einführung in Ajax in Java-Webanwendungen" von NetBeans verfallen war
Beachten Sie, dass ich von den Einstellungen des Android-Projekts von IntelliJ IDEA abhängig war
Ich möchte es zusätzlich implementieren, während ich Kotlin auf einer Site verwende, auf der Java ausgeführt wird
Ich möchte NetBeans auf einem Mac verwenden → Ich kann es verwenden!
Ich habe eine Ubuntu-Umgebung unter Windows 10 mit WSL2 erstellt.
Ich habe versucht, SQS mit AWS Java SDK zu betreiben