Kommunikation mit Seriellen Schnittstellen + Integration einer lib

BenBu

Mitglied
Hallo liebe Gemeinschaft,
Nachdem ich mein erstes Java Programm geschrieben habe, möchte ich versuchen in einem zweiten mit den COM Ports Signale an andere Geräte zu senden und auch welche zu empfangen.
Dazu habe ich bereits einige Stunden im Netz gesucht und habe sehr viele Artikel zu comm und rxtx gefunden. Ich habe alles mögliche Ausprobiert aber nichts hat wirklich fuktioniert.
Ich glaue es liegt daran, dass ich auch nicht ganz verstanden habe wie die libs importiert werden. Ich habe das Gefühl jeder macht es anders. Was ist dieses Maven ? und wie kann man das nutzen ? Scheinbar soll das ja damit irgendwie gehen. An diesem Punkt scheitere ich schon.
Ich habe allerdings (so denke ich) einen manuellen Import hin bekommen (comm). Doch leider schmeißt das Programm nur fehler wenn es laufen soll. Daher gehe ich davon aus, dass der import auch nicht korrekt war oder eine Einstellung falsch ist. Ich füge das Programm unten an. Heute habe ich noch gefunden, dass comm nicht für Windows funktioniert? Stimmt das?
Java:
package MainPackage;

import java.util.Enumeration;

import javax.comm.*;
import java.util.Enumeration;

public class Main {
  public static void main(String args[]) {
    Enumeration ports = CommPortIdentifier.getPortIdentifiers();
    while (ports.hasMoreElements()) {
      CommPortIdentifier port = (CommPortIdentifier) ports.nextElement();
      String type;
      switch (port.getPortType()) {
      case CommPortIdentifier.PORT_PARALLEL:
        type = "Parallel";
        break;
      case CommPortIdentifier.PORT_SERIAL:
        type = "Serial";
        break;
      default: /// Shouldn't happen
        type = "Unknown";
        break;
      }
      System.out.println(port.getName() + ": " + type);
    }
  }
}

----------
Meine Fehlermeldung:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/comm/CommPortIdentifier
at MainPackage.Main.main(Main.java:24)
Caused by: java.lang.ClassNotFoundException: javax.comm.CommPortIdentifier
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 1 more

------
Mein Workspace:
2023-03-27_09h42_21.png

-------
Vielleicht kann mir einer von euch erklären wie ich so eine lib richtig einfüge und mir meine Fehler aufzeigen.
Danke Leute.
 

KonradN

Super-Moderator
Mitarbeiter
Also generell ist der Ansatz schon richtig: Du packst die jar einfach in einen Ordner deines Projektes und fügst es dann zum Classpath hinzu.
Dabei ist aber wirchtig, dass Du auch notwendige weitere Abhängigkeiten hinzu fügst - aber bei comm sollte es keine geben so ich https://mvnrepository.com/artifact/javax.comm/comm/2.0.3 richtig verstehe. - da lässt sich das jar File aber nicht herunter laden - etwas dubios.
Die Library ist aber auch deprecated.

Hinzufügen zum Classpath kannst Du per Rechtsklick auf die jar um es dann hinzu zu fügen oder Du gehst über die Einstellungen:
Im Java Build Path kannst Du im Reiter Libraries über Add Jar die Library hinzu fügen. Ab Java 9 ist da noch zu beachten: Modulepath != Classpath. Hier willst Du die jar vermutlich einfach nur im Classpath haben, daher sollte es da eingefügt werden.

Daher wäre dann die andere Library eher zielführend oder ggf. setzt Du auch auf eine andere Library, denn die JSerialComm gilt wohl derzeit mit als ide beste Library. Eine Übersicht findet sich z.B. hier:

Maven wäre prinzipiell immer anzuraten, alleine schon damit Du unabhängig von einer Entwicklungsumgebung bist. Aber gerade für Anfänger ist es super, dass ein Projekt einfach geteilt werden kann und Verbesserungen können einfach vorgeschlagen werden. Kein "Dann geh mal in die Einstellungen unter Java Build Path und da in den Tab ... Was ist da wie eingetragen?" und so.
Und ein Maven Projekt ist einfach direkt erstellbar. Das bietet auch Eclipse:
New Project: Maven > Maven Project.
Wichtig: Mach einen Haken bei "Create simple project" - die Auswahl eines Archetyps ist Schrott :) )
Groupid / Artefactid kennzeichnen ein projekt. So lange Du es nicht zu Maven hoch lädst, kannst Du da aber irgendwas nehmen. groupid ist dann dein Name oder Firmenname und artefactid der Name des Projekts. (Beides kleingeschrieben ohne Leerzeichen und Sonderzeichen).
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 9
D Klassen Klassen Kommunikation Java Basics - Anfänger-Themen 12
I Kommunikation "normaler PC" mit lokaler Software an "Cloud Service" und umgekehrt Java Basics - Anfänger-Themen 15
izoards Socket Kommunikation Java Basics - Anfänger-Themen 16
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 3
M konzeptuelle Frage: In welcher Klasse definiert man am Besten Methoden, die die Kommunikation mit dem User regeln? Java Basics - Anfänger-Themen 8
A Client-Server Kommunikation Java Basics - Anfänger-Themen 3
S JavaFX-Arduino Kommunikation mit LCD-Anzeige Java Basics - Anfänger-Themen 0
A Kommunikation zwischen nebenläufigen Threads Java Basics - Anfänger-Themen 4
F Klassen Kommunikation zwischen Klassen Java Basics - Anfänger-Themen 4
M Input/Output Kommunikation mit externen Geräten Java Basics - Anfänger-Themen 0
M OOP Kommunikation MVC und DTO Java Basics - Anfänger-Themen 13
K Kommunikation von Java RMI und Webservices Java Basics - Anfänger-Themen 9
H Einfache Client/Server-Kommunikation Java Basics - Anfänger-Themen 16
E MVC: Kommunikation der Modellteile Java Basics - Anfänger-Themen 12
G Klassen Kommunikation zw. Klassen Java Basics - Anfänger-Themen 28
B Socket Kommunikation in beide Richtungen Java Basics - Anfänger-Themen 12
F Socket Kommunikation Java Basics - Anfänger-Themen 4
G Server-Client Kommunikation Java Basics - Anfänger-Themen 3
G Kommunikation zwischen zwei Klassen Java Basics - Anfänger-Themen 5
J Panel-übergreifende Kommunikation Java Basics - Anfänger-Themen 3
P Kommunikation zwischen zwei *.class Java Basics - Anfänger-Themen 3
J RxTx/RS232 Kommunikation (TwoWay) Java Basics - Anfänger-Themen 10
Z Tomcat Server Kommunikation zu Client Applet Java Basics - Anfänger-Themen 5
G Datenstruktur und die Kommunikation mit der GUI Java Basics - Anfänger-Themen 10
W Inter-Thread-Kommunikation Java Basics - Anfänger-Themen 3
M Kommunikation zwischen Klassen Java Basics - Anfänger-Themen 3
T Kommunikation zwischen Controller und GUI Java Basics - Anfänger-Themen 2
S Frage zur Kommunikation zwischen Objekten Java Basics - Anfänger-Themen 5
J Kommunikation zwischen zwei JAVA-Dateien Java Basics - Anfänger-Themen 8
T Kommunikation zw. 2 Javaprogrammen Aufr --> Verab. -> Java Basics - Anfänger-Themen 6
P Kommunikation mit Prozess Java Basics - Anfänger-Themen 3
H Kommunikation C++ <> Java Java Basics - Anfänger-Themen 4
A Kommunikation Java-Anwendung <-> Java-Applet Java Basics - Anfänger-Themen 24
V Kommunikation zwischen Klassen Java Basics - Anfänger-Themen 2
S Kommunikation zwischen Komponenten in einem JFrame Java Basics - Anfänger-Themen 10
D Thread und Process Kommunikation bei eigener Console Java Basics - Anfänger-Themen 2
P asynchrone Kommunikation Applet Servlet mit RMI möglich Java Basics - Anfänger-Themen 4
B Kommunikation zwischen Klasse und Listener Java Basics - Anfänger-Themen 2
F Kommunikation von 2 Klasse Java Basics - Anfänger-Themen 5
L Kommunikation zwischen mehreren Klassen Java Basics - Anfänger-Themen 2
B jtapi <-> tapi Kommunikation Java Basics - Anfänger-Themen 2
D Kommunikation zwischen zwei Java Anwendungen möglich? Java Basics - Anfänger-Themen 6
S Kommunikation zwsichen Klassen. Java Basics - Anfänger-Themen 9
D J/Direct oder JNI? .bzw. Kommunikation mit Windows-API. Java Basics - Anfänger-Themen 2
G Nochmal Problem mit Kommunikation zwischen Klassen Java Basics - Anfänger-Themen 3
G Kommunikation zwischen Klassen, aber bitte MVC Java Basics - Anfänger-Themen 12
G Kommunikation zwischen Applet und Java-Anwendung über TCP/IP Java Basics - Anfänger-Themen 3
M Kommunikation zwischen GUI und Event -Klasse Java Basics - Anfänger-Themen 3
M probleme in der kommunikation von klassen Java Basics - Anfänger-Themen 5
Q Kommunikation zwischen Frames Java Basics - Anfänger-Themen 3
Fragerjava Java Schnittstellen Java Basics - Anfänger-Themen 6
L Abstrakte Typen und Schnittstellen Java Basics - Anfänger-Themen 19
S Zufallszahl-Generatoren (Schnittstellen) Java Basics - Anfänger-Themen 14
N Generische Schnittstellen Java Basics - Anfänger-Themen 2
K Welchen Typ haben Variablen in Default-Methoden und in statischen Methoden in Schnittstellen? Java Basics - Anfänger-Themen 4
Helgon Interface Runnable Frage / Schnittstellen allgemein Java Basics - Anfänger-Themen 3
S ich begreife es einfach nicht -> zweck der Schnittstellen Java Basics - Anfänger-Themen 27
D Interfaces / Schnittstellen Java Basics - Anfänger-Themen 8
C Schnittstellen und Abstrakte Klassen Java Basics - Anfänger-Themen 3
G Schnittstellen Programmierung Java Basics - Anfänger-Themen 5
G in Java mit Schnittstellen arbeiten Java Basics - Anfänger-Themen 5
G Nutzen von Schnittstellen Java Basics - Anfänger-Themen 14
M abstrakte klassen / Schnittstellen Java Basics - Anfänger-Themen 4
E Schnittstellen und Objekte in komplizierter Form Java Basics - Anfänger-Themen 10
E Wozu dienen Schnittstellen? Java Basics - Anfänger-Themen 16
G schnittstellen Java Basics - Anfänger-Themen 4
Y Frage zu Schnittstellen Java Basics - Anfänger-Themen 17
C Schnittstellen ???? Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben