USB Geräte ansprechen

buk

Mitglied
Guude,

mich interessiert es, wie ich unter Java USB Geräte ansprechen kann. Mit C++ spreche ich USB Geräte über die CreateFile/ReadFile/WriteFile/DeviceIoControl/ Funktionen an. Im speziellen geht es mir hierbei um, über USB angeschlossene Drucker. Es ist auch nichts wildes, ich will lediglich die DeviceID des Druckers auslesen, welche vom Typ her ein String ist. Diese will ich auswerten, ggfs. verändern und dann wieder zum Drucker senden. Unter C++ geschieht das Senden und Empfangen über die ReadFile und WriteFile Funktionen.

Ich bin beim suchen hier im Forum und per Google desöfteren über die JNI gestolpert. Nur wäre ich doch damit wieder an das Betriebssystem gebunden, da ich unter Windows zum Beispiel die <Windows.h> einbinden müsste um auf die WinApi32 zugreifen zu können. Hat Java da nichts eigenes?

Ihr merkt, ich stehe da auf dem Schlauch und mir fehlt komplett der Ansatz. Es wäre super wenn mich mal jemand in die richtige Richtung schubsen könnte.

Grüße,
buk
 
Zuletzt bearbeitet von einem Moderator:

buk

Mitglied
Guude,

nach reichlicher Überlegung werde ich mich wohl mit C# und P/Invoke[1] beschäftigen.
Schade das mir Java da nichts anbieten kann, andererseits ist Java eine Platformunabhängige Sprache, und bevor ich mit JNI anfange bleibe ich besser bei C/C++ bzw. C# mit P/Invoke.

Danke für eure Antworten!

Regards,
buk

[1] pinvoke.net: the interop wiki!
 
T

tuxedo

Gast
Naja, ich seh das so... Entweder dir JVM bietet mir den Platformunabhängigen Zugriff auf die gewünschte HW, oder ich muss selbst für jede Plattform was basteln und eine einheitliche API drüber legen. Das Ergebnis ist, bis auf den Fakt dass ich die DLL für die Plattform mitliefere und nicht die JVM, das gleiche.

Mit C# wird die Sache nicht wirklich besser. Nur ist's da schon eingebaut. Aber mit Plattformunabhängig wäre ich da vorsichtig, auch wenn es Dinge wie MONO gibt.

- Alex
 

buk

Mitglied
Guude,

naja es geht ja eigentlich nur darum, an diesen String zu kommen, diesen auszulesen, auszuwerten, zu verändern, und wieder zum Drucker zu senden. In C++ spreche ich eben über die WinApi32 Funktionen CreateFile, ReadFile, WriteFile, ... mit dem Drucker. Das ich in Java dazu keine Möglichkeit habe, kann ich mir fast nicht vorstellen ...

Regards,
buk
 
T

tuxedo

Gast
Vorstellung hin oder her: Die JVM bzw. die Java Standard API bietet von Haus aus nichts an, mit dem du USB-mäßig lesen oder schreiben kannst. Die von die angesprochenen Methoden werden in Java nur in Verbindung mit dem Dateisystem genutzt.

Du kommst also um eine native Lösung nicht drum rum.
 

buk

Mitglied
Guude,
Vorstellung hin oder her: Die JVM bzw. die Java Standard API bietet von Haus aus nichts an, mit dem du USB-mäßig lesen oder schreiben kannst. Die von die angesprochenen Methoden werden in Java nur in Verbindung mit dem Dateisystem genutzt.
Aus diesem Grund bleibe ich ja schlussendlich bei C/C++ und der WinApi32, bzw. schaue mal das ich das mit C# und P/Invoke hinbekomme.

Du kommst also um eine native Lösung nicht drum rum.
Du hast ja recht. Aber es wäre schon schöne gewesen, mal meinen Horizont zu erweitern ...

Regards,
buk
 
T

tuxedo

Gast
Du hast ja recht. Aber es wäre schon schöne gewesen, mal meinen Horizont zu erweitern ...

Dem steht doch nichts im Wege? Wenn du unter Linux und MacOSX noch eine vergleichbare API findest, hast du die 3 Major-OS abgedeckt und kannst eine einheitliche Java-API drauf setzen und der Community anbieten. Dann hast du deine Plattformunabhängigkeit mit Java wieder :)

- Alex
 
G

Gast2

Gast
Mit C# wird die Sache nicht wirklich besser. [...] Aber mit Plattformunabhängig wäre ich da vorsichtig, auch wenn es Dinge wie MONO gibt.
wenn man unter C# mit P/Invoke anfängt, gibt es Plattformunabhängigkeit nicht mehr ... da ist egal ob es mit Mono theoretisch geht

nach reichlicher Überlegung werde ich mich wohl mit C# und P/Invoke[1] beschäftigen. [...] bevor ich mit JNI anfange bleibe ich besser bei C/C++ bzw. C# mit P/Invoke.
wieso willst Du Dich selber mit P/Invoke geiseln?? ... nimm C++/CLI und binde die Assembly in C# ein ... C++/CLI ist genau dafür gedacht - #include "windows.h" und gut ist

hand, mogel

PS: C++/CLI != C/C++ !!
 

buk

Mitglied
Guude,
Und an deiner Stelle würde ich mich direkt entweder auf C oder C++ beschränken. Oder wozu brauchst du den .NET-Kram?
den .NET-Kram brauch ich nicht. Wir benutzen die guten alten Microsoft Foundation Classes als Framework. Was auch super funktioniert. Es ging hier lediglich um meinen sportlichen Ehrgeiz mal was neues zu versuchen.

Regards,
buk
 

hansmueller

Bekanntes Mitglied
Hallo,

ist jetzt nicht so mein Gebiet, aber... es gibt in der Api eine Menge "PrinterXXX"-Klassen. Man kann mit Java zwar nicht die USB-Ports an die ein Drucker angeschlossen ist direkt abfragen, aber man kann sich so einige Infos über die im Betriebsystem installierten Drucker ausgeben lassen.

MfG
hansmueller
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Suche Geräte für Java SE Embedded Allgemeine Java-Themen 0
B USB-Geräte ansteuern Allgemeine Java-Themen 13
D USB Geräte Allgemeine Java-Themen 4
W Bizerba Waage ansprechen Allgemeine Java-Themen 44
C Nested JSON in Java ansprechen [Wordpress Rest Api] Allgemeine Java-Themen 26
M Über Liste verschiendene JComponents mit eigenem implementierten Interface ansprechen Allgemeine Java-Themen 7
K Labels mit Namen ansprechen Allgemeine Java-Themen 3
I USB ansprechen Allgemeine Java-Themen 2
K Xattr Mac unter Java ansprechen Allgemeine Java-Themen 17
S GPS-Maus über USB ansprechen Allgemeine Java-Themen 8
redJava99 Speicherchipkarte ansprechen / I2C Allgemeine Java-Themen 2
G Excel Menüsteuerung ansprechen Allgemeine Java-Themen 3
Sonecc Ansprechen von Schnittstellen des PCs Allgemeine Java-Themen 4
Z Elemente einer HashTabelle gezielt ansprechen Allgemeine Java-Themen 10
R Barcode Scanner mit JavaPos ansprechen Allgemeine Java-Themen 1
G Druckenport eines USB -> Druckerport Adapters ansprechen Allgemeine Java-Themen 4
ARadauer mit java photoshop ansprechen Allgemeine Java-Themen 8
M Daten aus einem ZIP wie die im JAR ansprechen Allgemeine Java-Themen 4
K exe Programm einbinden/ansprechen Allgemeine Java-Themen 5
G Servlet über apache Tomcat ansprechen Allgemeine Java-Themen 6
F Ansprechen eines Array in der JSP Allgemeine Java-Themen 4
Y Javadoc - Wie Parameter ansprechen bei Methodenkommentar Allgemeine Java-Themen 2
G Mikrocontroller mit Java ansprechen Allgemeine Java-Themen 2
S Usb Port ansprechen Allgemeine Java-Themen 7
M Paralle Schnittstelle ansprechen Allgemeine Java-Themen 2
J Mehrere CPUs gleichzeitig ansprechen Allgemeine Java-Themen 4
MQue Button ansprechen Allgemeine Java-Themen 5
I Mehrere Soundkarten mit JavaSoundAPI ansprechen Allgemeine Java-Themen 2
N Serielle Schnittstelle ansprechen Allgemeine Java-Themen 9
M pdf maker via java code ansprechen Allgemeine Java-Themen 2
N USB Device ansprechen Linux Allgemeine Java-Themen 9
J MS Access mit Java ansprechen Allgemeine Java-Themen 3
M Ansprechen der Windows API Allgemeine Java-Themen 5
J PS/2-Schnittstelle ansprechen Allgemeine Java-Themen 7
R ISDN-Modem ansprechen Allgemeine Java-Themen 2
E Seriellen Port unter Windows ansprechen Allgemeine Java-Themen 16
S Datei in .jar über url ansprechen Allgemeine Java-Themen 3
N hardware ansprechen ? Allgemeine Java-Themen 21
K Ansprechen und Verwalten der Parallelport Schnittsstelle Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben