Serial port abfragen

BoneyM

Mitglied
Hallo,

ich bin ziehmlicher Java Neuling und versuche mittels IntelliJ IDEA unter Windows 10 und JDK10 (Oracle Java SE) ein kleines Projekt zu realisieren. Ich möchte die verfügbaren COM-Ports abprüfen und auflisten. Erstmal einfach in der CMD shell. Dazu habe ich massig Beispiele im Internet gefunden, fast schon wieder zuviele... ich wollte dann einfach mal dieses hier testen: http://www.java2s.com/Code/Java/Development-Class/QueryingAvailableCOMPorts.htm

Es verwendet javax.comm als Library. Nun wollte ich die über Maven importieren. Dazu gehe ich auf File->Project Structure->Project Settings->Libraries und drücke "+", wähle "From Maven", gebe ins Suchfeld "javax.comm" ein und sehe auch drei Versionen, 1.0, 2.0 und 3.0. Aber egal welche ich wähle und auf OK zum Download drücke, bekomme ich beim jar download eine Fehlermeldung: "No files were downloaded for javax.comm:comm:..." :-(

Was mache ich nur falsch?
 

BoneyM

Mitglied
Ihr habt mein aktuelles Problem leider falsch verstanden, es geht nicht speziell um die Lib, sondern um jegliche. Ich erhalte immer die o.g. Fehlermeldung, egal welche Lib ich versuche über Maven zu importieren.
 

BoneyM

Mitglied
OK! Mit RXTX klappte das nun schonmal, Danke! :)
Nun gehe ich dran eine Methode zu schreiben die mir eine Liste aller verfügbaren COM-Ports zurückliefert.
 

BoneyM

Mitglied
Grr, ich habe den Umgang mit IDEA noch nicht drauf. Scheinbar findet er die importierte Lib nicht beim compilieren und/oder ausführen:
Code:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path: [Z:\Program Files\jdk-10.0.2\bin, C:\WINDOWS\Sun\Java\bin, C:\WINDOWS\system32, C:\WINDOWS, C:\ProgramData\Oracle\Java\javapath, C:\WINDOWS\system32, C:\WINDOWS, C:\WINDOWS\System32\Wbem, C:\WINDOWS\System32\WindowsPowerShell\v1.0\, C:\Users\boneym\AppData\Local\Microsoft\WindowsApps, .]
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2654)
    at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:876)
    at java.base/java.lang.System.loadLibrary(System.java:1875)
    at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83)
    at CAN.can.CAN.listPorts(CAN.java:9)
    at CAN.can.CAN.main(CAN.java:37)

Process finished with exit code 1
 

mihe7

Top Contributor
Scheinbar findet er die importierte Lib nicht beim compilieren und/oder ausführen:
Doch, aber Du musst auch die DLL verwenden (s. Kommentar #3, das wäre die libSerial.dll). Dem von IDEA angegebenen Path nach dürftest Du die DLL einfach in den Projektordner schmeißen können (ich gehe mal davon aus, dass "." der Projektordner ist).
 

BoneyM

Mitglied
Laut Install.txt von dieser Lib (wohl eine Abwandlung der originalen RXTX?) müssen die Dateien in die Java-VM welche das ganze ausführt. Ich bin etwas verwirrt, aber ich habe neben IntelliJ, welches wohl eine eigene JRE Umgebung gleich mitbringt, nur das SDK "Java SE 10" installiert. Und muss ich dann die von Maven importierte JAR wieder aus dem Lib-Ordner des Projektes rausnehmen und durch die andere, nicht namensgleiche, JAR ersetzen?
Oder sollte ich noch eine JRE 10 zusätzlich installieren?
Und ist das der übliche Weg soetwas zu tun? Oder gilt das nur für Bibliotheken mit DLLs?
 
Zuletzt bearbeitet:

mihe7

Top Contributor
aut Install.txt von dieser Lib (wohl eine Abwandlung der originalen RXTX?) müssen die Dateien in die Java-VM welche das ganze ausführt.
Muss sie nicht. Es reicht, wenn die DLL im Library-Path liegt.

Siehe dazu die Fehlermeldung von vorhin:
Code:
no rxtxSerial in java.library.path: [Z:\Program Files\jdk-10.0.2\bin, C:\WINDOWS\Sun\Java\bin, C:\WINDOWS\system32, C:\WINDOWS, C:\ProgramData\Oracle\Java\javapath, C:\WINDOWS\system32, C:\WINDOWS, C:\WINDOWS\System32\Wbem, C:\WINDOWS\System32\WindowsPowerShell\v1.0\, C:\Users\boneym\AppData\Local\Microsoft\WindowsApps, .]

In jedem dieser Verzeichnisse wird nach der DLL gesucht.


Und muss ich dann die von Maven importierte JAR wieder aus dem Lib-Ordner des Projektes rausnehmen und durch die andere, nicht namensgleiche, JAR ersetzen?
Das musst Du ausprobieren, weil die Versionen nicht zusammenstimmen. Wenn ich mich recht entsinne, funktioniert es, Du bekommst aber eine Warnung von der Lib.

Oder gilt das nur für Bibliotheken mit DLLs?
Ja. Für die Kommunikation über den seriellen Port ist im Standard keine API vorgesehen. Da hierfür Systemaufrufe benötigt werden, reicht eine einfache Jar nicht aus sondern Du brauchst noch eine für das jeweilige System geschriebene Bibliothek als Schnittstelle zwischen Java und dem System. Unter Windows ist das halt eine DLL.
 

BoneyM

Mitglied
Danke mihe7, das leuchtet mir nun ein! Sorry, bin halt blutiger Anfänger und gerade die Infos im Netz zu Java erschlagen einen bei der Suche nach einer Lösung und da ist es von unschätzbarem Wert Leute wie Dich zu finden die einem das vernünftig und geduldig erklären! :)

Werde mir das nun mal durchlesen und hoffe schlauer zu werden: https://www.jetbrains.com/help/idea/library.html
 

BoneyM

Mitglied
So, uff, erstmal "Es klappt", ich erhalte einen COM8 als Ausgabe :) Da bin ich schonmal ziehmlich happy :)
Ich habe das jetzt so gemacht:
  1. Das "http://mfizz.com/oss/rxtx-for-java" runtergeladen und entpackt.
  2. Daraus die Dateien "RXTXcomm.jar", "rxtxParallel.dll" und "rxtxSerial.dll" in den Unterordner "lib" meines Projektes kopiert.
  3. Im IDEA den "lib"-Ordner meines Projektes aufgeklappt und da sehe ich dann die drei Dateien. Die *.dll's tragen ein "?" vorn weg, scheinbar weis IDEA damit so nix anzufangen, egal...
  4. Über Rechtsklick auf den "lib"-Ordner im IDEA dann die Funktion "Add as library..." aufgerufen und den nachfolgenden Dialog einfach mit "OK" bestätigt. Nun konnte ich bereits die RXTX Elemente verwenden ohne das die IDE alles rot unterkringelt. Jedoch gab es beim kompilieren noch den Fehler.
  5. Dann über das File-Menü "Project Structure..."geöffnet und dort auf "Modules" und darin auf den Tab "Dependencies" gewechselt. Dort rechts auf das "+"-Symbol geklickt und "1 JARs or directories..." ausgewählt.
  6. Im File-Dialog der darauf folgt die beiden *.dll Dateien markiert und "OK".
  7. Nun gibt es einen zusätzlichen Eintrag namens "Empty Library" der rot geschrieben ist.
Dann konnte ich einwandfrei compilieren und ausführen, ohne jegliche Fehlermeldungen oder Warnungen!

Keine Ahnung ob das so alles "gut" ist, sprich der richtige Weg. Mir erschien es aber besser als die DLLs in irgendwelche Verzeichnisse des IDEA oder der Java VM Envs zu kopieren.
 

BoneyM

Mitglied
DAS wiederrum ist für MICH selbstverständlich :)
Bitte korrigiert es, falls ich mit meiner Lösung vollkommen falsch lag... ja?!

So, nun würde ich mich an einer einfachen Swing-GUI versuchen, die damit ein Dropdown füllt.

Frage: Bekommt die Lib einen Event wenn von Windows aus neue Ports per Plug n play ginzugefügt oder entfernt werden? Kann ich ein solches Event abfragen?
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Serial Key prüfen -> String mit privatem Key und dann abgleichen; Summe = 0 Java Basics - Anfänger-Themen 8
B Serial Key - Prüfung ob Software gekauft Java Basics - Anfänger-Themen 1
I Serial Key speichern? Java Basics - Anfänger-Themen 8
E Programm - Serial etc? Java Basics - Anfänger-Themen 4
nrg Serial Version ID? Java Basics - Anfänger-Themen 16
ff eclipse ::--> serial version uid Java Basics - Anfänger-Themen 8
G @SuppressWarnings("serial") Java Basics - Anfänger-Themen 2
H Serial Java Basics - Anfänger-Themen 5
R Java E-mail versenden. SMTP Port Fehler Java Basics - Anfänger-Themen 8
F LPT Port / Relaiskarte ansteuern Java Basics - Anfänger-Themen 5
M daytime-Server Port 13 Java Basics - Anfänger-Themen 2
F Port Listener Java Basics - Anfänger-Themen 9
J mit COM-Port drucken Java Basics - Anfänger-Themen 8
A Angeschlossenes Gerät am Com Port erkennen Java Basics - Anfänger-Themen 4
T Daten über Com Port senden Java Basics - Anfänger-Themen 2
R Rxtx Rs232: I Can t send to the port Java Basics - Anfänger-Themen 5
C Zugriff auf serielle Schnittstelle Com Port Java Basics - Anfänger-Themen 13
C Lesen von seriellem Port Java Basics - Anfänger-Themen 4
G http-Port beim Apache Tomcat ändern Java Basics - Anfänger-Themen 1
K (USB) Port anreden Java Basics - Anfänger-Themen 2
N port auf status abfragen Java Basics - Anfänger-Themen 5
Z Port Wächter Java Basics - Anfänger-Themen 6
C Serieller Port Java Basics - Anfänger-Themen 4
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
ven000m Bitcoin Blockhöhe abfragen Java Basics - Anfänger-Themen 12
S If abfragen (+, - , /, *) Java Basics - Anfänger-Themen 13
M Dialogbox solange abfragen, bis gültige Wert-Eingabe Java Basics - Anfänger-Themen 12
Phash Websocket abfragen Java Basics - Anfänger-Themen 1
volcanos List & ArrayList nach Familiennamen abfragen Java Basics - Anfänger-Themen 57
E schneller von der Datenbank abfragen Java Basics - Anfänger-Themen 15
M Checkbox abfragen und Radiobutton Group zurücksetzen Java Basics - Anfänger-Themen 1
L Datenpaare abfragen Java Basics - Anfänger-Themen 11
O ADT Graph nach größe Abfragen Java Basics - Anfänger-Themen 42
F Ordner auf alle Unterdatein abfragen Java Basics - Anfänger-Themen 3
N Abfragen eines Textes aus einem JTextField in Java, Funktion, CardLayout, Java Basics - Anfänger-Themen 2
S boolean Wert von mehreren int Möglichkeiten abfragen ? Java Basics - Anfänger-Themen 4
H Variablen Methode zum Abfragen von Variablen aus Subklassen Java Basics - Anfänger-Themen 9
T Erste Schritte Textfeld abfragen ob etwas enthalten ist. Java Basics - Anfänger-Themen 17
S Asynchrone Socket-Abfragen Java Basics - Anfänger-Themen 5
S mehrfache if-Abfragen - beste Lösung Java Basics - Anfänger-Themen 1
E Abfragen des SimpleDateFormats Java Basics - Anfänger-Themen 1
L int array abfragen Java Basics - Anfänger-Themen 16
T Variablen Var aus While-Schleife abfragen -.-' Java Basics - Anfänger-Themen 9
Y Mehrdimensionales Array diagonal abfragen. Java Basics - Anfänger-Themen 5
S Datenbank auf Knopfdruck abfragen Java Basics - Anfänger-Themen 8
T if abfragen verkürzen Java Basics - Anfänger-Themen 5
M Wo Hilfsvariablen abfragen? Java Basics - Anfänger-Themen 1
M Farben/Color Abfragen von Farben innerhalb einer Methode Java Basics - Anfänger-Themen 9
M "Exceptions abfragen" Java Basics - Anfänger-Themen 6
M Frage nach BestPractice in if-Abfragen Java Basics - Anfänger-Themen 1
P Anlegen und Abfragen von Array List Java Basics - Anfänger-Themen 4
R IF Abfragen Java Basics - Anfänger-Themen 8
R If Abfragen Problem! Java Basics - Anfänger-Themen 4
I Button abfragen ob er geklickt wurde Java Basics - Anfänger-Themen 4
C If Abfragen Problem Java Basics - Anfänger-Themen 46
I Drei booleans abfragen Java Basics - Anfänger-Themen 2
R Input/Output Java String abfragen Java Basics - Anfänger-Themen 3
A Vokabel abfragen Java Basics - Anfänger-Themen 3
R Datentypen Datentyp eines Werts in einer Textdateizeile abfragen und ändern Java Basics - Anfänger-Themen 4
N Best Practice Stilistische Anwendung von if/else-Abfragen Java Basics - Anfänger-Themen 7
E Checkboxen abfragen Java Basics - Anfänger-Themen 10
H if abfragen Java Basics - Anfänger-Themen 38
C TreeMap Abfragen Problem Java Basics - Anfänger-Themen 7
S Abfragen wenn das ende einer Tabelle erreicht ist Java Basics - Anfänger-Themen 8
B mehrere Abfragen zusammenfügen Java Basics - Anfänger-Themen 3
H durch Schleife 50 Variablen abfragen Java Basics - Anfänger-Themen 8
B If abfragen! Java Basics - Anfänger-Themen 9
J checkbox status abfragen und drucken Java Basics - Anfänger-Themen 13
M AWT Applet - Button aus anderer Klasse abfragen Java Basics - Anfänger-Themen 4
F Bedingungen mit Abfragen verknüpfen Java Basics - Anfänger-Themen 7
P länge von array abfragen? Java Basics - Anfänger-Themen 2
Gossi Input/Output Datei Lesen, inhalt abfragen, speichern Java Basics - Anfänger-Themen 5
T jNumberField auf null abfragen Java Basics - Anfänger-Themen 5
Z Erste Schritte LinkedList Werte abfragen und vergleichen Java Basics - Anfänger-Themen 3
S Input/Output Welche Möglichkeiten Eingabe von User abfragen Java Basics - Anfänger-Themen 5
H Checkboxstatus abfragen Java Basics - Anfänger-Themen 10
S unzulässigen Wert abfragen - aber wo Java Basics - Anfänger-Themen 3
eLogic Aktive Internetverbindung abfragen Java Basics - Anfänger-Themen 21
B Abfragen eines Preises.. Java Basics - Anfänger-Themen 20
D Touchpad abfragen?! Java Basics - Anfänger-Themen 9
D Abfragen ob Excel-Dateien Makros enthalten? Java Basics - Anfänger-Themen 4
B Abfragen eines Excel-Feldes auf null Java Basics - Anfänger-Themen 17
B GridLayout - elemente mit Maus abfragen Java Basics - Anfänger-Themen 3
B Daten in Instanz einer Klasse ändern / abfragen Java Basics - Anfänger-Themen 12
M Datentypen String mit Trennzeichen abfragen Java Basics - Anfänger-Themen 7
D GUI Checkboxen in allen Klassen abfragen? Java Basics - Anfänger-Themen 5
B OOP String auf bestimmte Zeichen abfragen Java Basics - Anfänger-Themen 4
M Double.NaN abfragen Java Basics - Anfänger-Themen 6
J Performance Vergleich von if-Abfragen mit mehreren Bedingungen Java Basics - Anfänger-Themen 9
H Objecttyp abfragen... Java Basics - Anfänger-Themen 11
N Zeilenanzahl einer TXT abfragen..? Java Basics - Anfänger-Themen 11
S Bremsen 3 IF-Abfragen ein Programm? Java Basics - Anfänger-Themen 7
T scanner bestimmtes format abfragen Java Basics - Anfänger-Themen 5
T JOptionPane mit .showInputDialog: Ergebnis abfragen? Java Basics - Anfänger-Themen 2
S Absatz aus Textdokument abfragen Java Basics - Anfänger-Themen 6
B gedrückte Tasten abfragen Java Basics - Anfänger-Themen 11
L "unschöne" if-Abfragen Java Basics - Anfänger-Themen 4
JFeel-x JComponent<-----Eigenschaften<-- Als Liste abfragen? Java Basics - Anfänger-Themen 8
P Pixelfarbe abfragen Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben