Hallo,
seit einiger Zeit beschäftige ich mich nun schon mit Java, aber immer wieder gerate ich an den Punkt, an dem ich mich frage, ob ich irgendetwas grundlegendes übersehen habe, ...
Mein aktuelles Ziel ist es mit Java auf einen COM-Port zuzugreifen (von einem Mac, wenn das wichtig sein sollte) und die Daten von meinem GPS-Modul zu analysieren.
Nachdem ich mich etwas umgesehen habe musste ich feststellen, dass diese ganzen rxtx-Ansätze sehr kompliziert wirken und erinnerte mich an Processing.org, welches eine Bibliothek für RS232 zur Verfügung stellt. Diese nutzt soweit ich sehen konnte auch rxtx, ist aber viel einfacher zu verwenden: Serial \ Libraries \ Processing.org
Nun habe ich versucht die entsprechenden Bibliotheken (core.jar, RXTXcomm.jar, serial.jar und einen Ordner macosx mit der Datei librxtxSerial.jnilib, derren Sinn sich mir nicht ganz erschließt) zu meinem Netbeans-Projekt hinzugefügt und rufe nun über einen Button folgende Zeilen aus einem Processing-Beispiel auf (die natürlich noch nicht sehr viel bringen):
und die Fehlermeldung lautet:
Für mich sieht das aus, als würde rxtxSerial fehlen, RXTXcomm.jar ist aber importiert, ...
Was sollte ich tun?
seit einiger Zeit beschäftige ich mich nun schon mit Java, aber immer wieder gerate ich an den Punkt, an dem ich mich frage, ob ich irgendetwas grundlegendes übersehen habe, ...
Mein aktuelles Ziel ist es mit Java auf einen COM-Port zuzugreifen (von einem Mac, wenn das wichtig sein sollte) und die Daten von meinem GPS-Modul zu analysieren.
Nachdem ich mich etwas umgesehen habe musste ich feststellen, dass diese ganzen rxtx-Ansätze sehr kompliziert wirken und erinnerte mich an Processing.org, welches eine Bibliothek für RS232 zur Verfügung stellt. Diese nutzt soweit ich sehen konnte auch rxtx, ist aber viel einfacher zu verwenden: Serial \ Libraries \ Processing.org
Nun habe ich versucht die entsprechenden Bibliotheken (core.jar, RXTXcomm.jar, serial.jar und einen Ordner macosx mit der Datei librxtxSerial.jnilib, derren Sinn sich mir nicht ganz erschließt) zu meinem Netbeans-Projekt hinzugefügt und rufe nun über einen Button folgende Zeilen aus einem Processing-Beispiel auf (die natürlich noch nicht sehr viel bringen):
Java:
Serial myPort; // Create object from Serial class kein Problem
String val; // Data received from the serial port natürlich auch noch keins
String portName = Serial.list()[0]; // hier bekomme ich eine Fehlermeldung
Code:
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1758)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1045)
at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:123)
at processing.serial.Serial.list(Serial.java:557)
at jgps.JGPSView.test(JGPSView.java:208)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:662)
at org.jdesktop.application.ApplicationAction.actionPerformed(ApplicationAction.java:698)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6375)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6140)
at java.awt.Container.processEvent(Container.java:2083)
at java.awt.Component.dispatchEventImpl(Component.java:4737)
at java.awt.Container.dispatchEventImpl(Container.java:2141)
at java.awt.Component.dispatchEvent(Component.java:4565)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4619)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4280)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4210)
at java.awt.Container.dispatchEventImpl(Container.java:2127)
at java.awt.Window.dispatchEventImpl(Window.java:2482)
at java.awt.Component.dispatchEvent(Component.java:4565)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:684)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:643)
at java.awt.EventQueue$1.run(EventQueue.java:641)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:657)
at java.awt.EventQueue$2.run(EventQueue.java:655)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:654)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Für mich sieht das aus, als würde rxtxSerial fehlen, RXTXcomm.jar ist aber importiert, ...
Was sollte ich tun?