Ist Java eine geeignete Sprache für Win-PC mit USB?

Gast #4737612
Lesenswert?

Moin moin,
ich komme aus der Delphi-Ecke und soll/muss mich auf eine 
zukunftsträchtigere Sprache umorientieren, welche 2 Anforderungen 
abdeckt:

- Win-PC mit USB Schnittstelle
- Android (einfache Apps)

Da fällt mir als Dino-Programmierer mit wenig Kontakt zu aktuellen 
Trends nur Java ein.

Für Android ist das offenbar die erste Wahl?

Für den Win-PC sieht das wohl anders aus, wenn ich nach USB und Java 
google.
Das ist wohl nicht so astrein in Java integriert (wegen der 
plattformübergreifenden Portierbarkeit) sondern nur über 
Fremdbibliotheken machbar???
Die Anforderungen an USB sind unterstes Level und nur für geringste 
Datenraten, also ein USB 1.1 - Niveau würde vollkommen reichen.

Bin ich mit Java auf dem Holzweg oder setze auf ein altes oder falsches 
Pferd?
Kann mir jemand den Kopf waschen  Erleuchtung bringen  mich auf einen 
komplett anderen Pfad führen?

Cheers,
das Besteck
Gast #4737744
Lesenswert?

Ja, danke das ist mir klar.
Nur scheint mir die Ansteuerung der USB-Hardware über diese Treiber von 
Java nicht sonderlich gefördert zu sein. Vermutlich weil es einfach 
keine hardwarenahe Sprache ist.
Aber irgendwelche Libraries sollte es dafür dennoch geben? Idealerweise 
eben "offizielle" und keine "Bastellösungen".

Die Anwendung:
Datenanbindung an µC-Board. War früher mal nur per RS232, ist 
mittlwerweile mit FTDI-Konverter gelöst und soll nun endlich direkt 
gemacht werden.
Die Datenmengen und Datenraten sind gering und auch nur sporadisch.
Könnte also per HID oder CDC locker realisiert werden.

Ehrlich gesagt kenne ich auch keine Software, welche mit Java 
geschrieben ist und eine native USB-Konnektivität unterstützt.
Aber ich kenne eben generell nicht viel was so an der modernen 
Software-Front passiert.
Gast #4737768
Lesenswert?

Moin,

ich nutze Java seit Jahren professionell. Mein letztes Projekt benötigte 
u.a. eine Anbindung eines Barcode-Scanners und sollte unter Win und OSX 
laufen. Genutzt hab ich Java mit Java-FX für die UI und die comm-api 
(http://www.oracle.com/technetwork/java/index-jsp-141752.html) für die 
Anbindung des Scanners als serielles device. Und für die USB-Variante 
gab es http://usb4java.org/index.html.

Wenn Du "nur" einen µC anbinden möchtest, solltest Du mit o.g. Dingen 
schon ausreichend Werkzeuge im Besteckkasten haben ;-)

Java als Sprache passt schon.

Grüße!
Gast #4737804
Lesenswert?

Danke d.o.!
Das ist doch mal eine Aussage.

@ Manuel Kampert:
Da habe ich mich vorher vielleicht nicht klar ausgedrückt.
Ich benötige für Android keine USB-Funktionalität - muss das nur eben 
auch machen (Datenanbindung via Bluetooth). Und da ist die Sprachwahl 
mit Java sicher nicht ganz verkehrt.

Gruß,
das Besteck
Gast #4737848
Lesenswert?

Besteck schrieb:
> Die Datenmengen und Datenraten sind gering und auch nur sporadisch.
> Könnte also per HID oder CDC locker realisiert werden.

Man wird doch von Java aus HID-Geräte und serielle Schnittstellen 
ansprechen können?

> Ehrlich gesagt kenne ich auch keine Software, welche mit Java
> geschrieben ist und eine native USB-Konnektivität unterstützt.

Du brauchst keine "native USB-Konnektivität". Um das USB kümmert sich - 
wie schon gesagt wurde - das Betriebssystem. Wenn dein Gerät sich als 
HID anmeldet, musst du Zugriff auf Eingabegeräte bekommen. Deinem Java 
ist dabei aber wurscht, dass das per USB angebunden ist.
Bei CDC gilt das gleiche. Ist für dein Programm einfach eine klassische 
serielle Schnittstelle.
Gast #4738358
Lesenswert?

Ja, danke.
Also ich bleibe dann bei diesem Schritt.
Es gibt doch noch eineige Aktivität, um USB per JAVA zu nutzen.

Für andere Interessenten:
Neben dem Tip von d.o. habe ich auch noch Infos über eine "jna-Library" 
gefunden, welche mir hier perfekt erscheint:

https://github.com/nyholku/purejavahidapi
https://github.com/java-native-access/jna
http://www.blog.kslemb.com/doku.php/en/projects/globx/java_hid

Nochmal vielen Dank an alle Kommentatoren!

Gruß vom Besteck, das den Löffel noch nicht abgibt!
Gast #4740679
Lesenswert?

Wie im ersten Post gleich anfangs beschrieben muss ich auch Android Apps 
schreiben.
Damit ist der Schritt Richtung Java vorgezeichnet.

Ich finde Delphi klasse, fürchte aber, dass ich ich den Zug verpasse in 
Richtung aktuelle Programmiertrends.
USB habe ich mit Delphi übrigens schon erfolgreich gemacht.
Aber wie heißt es immer (Gorbatschow lässt am Tag der deutschen Einheit 
grüßen): Wer zu spät kommt, den bestraft das Leben.
Und ich glaube, ich bin schon fast(!) zu spät dran.

Sicherlich gibt es im neuesten RAD Studio auch Android Unterstützung - 
aber warum mit aller Gewalt an alten Zöpfen festhalten bis entweder die 
Zöpfe reissen oder die Kraft ausgeht...

Das Besteck
#4768420
Lesenswert?

C# wäre noch interessante Alternative für dich. Sehr gut aufgebaute 
Sprache und unter Windows würde ich C# gegenüber Java vorziehen (API, 
Visual Studio). Läuft mit xamarin auch auf Android. Jedoch in der 
Performance und API bei Android nicht auf Java Niveau. Wenn du ziemlich 
anspruchsvolle Android Apps baust ist Java klar Favorit, ansonsten lohnt 
sich das auf jeden Fall C# anzusehen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren