Moin Moin!
Aber versuch mal eine Java-Anwendung zu schreiben, die über Plattformgrenzen hinweg ein Gerät an einer RS232-Schnittstelle oder gar an einem USB-Port steuern soll. Das endet oft damit, dass man eine betriebssystem- und architekturspezifische "Native Code"-Schnittstelle bastelt, darüber ein paar Lagen Wrapper wie Klopapier stapelt, und hofft, dass der üble Geruch durch die Wrapper ausreichend verdeckt wird.
Java wurde ja auch mit dem Ziel entworfen, möglichst nah an der Hardware und am Betriebssystem zu sein. Deswegen die VM...Nö, das ist die nachgebastelte Legende. Ursprünglich gab es durchaus einen Plan für eine Hardware-Maschine (Star 7), die compilierten Java-Code in Hardware ausführen sollte: http://en.wikipedia.org/wiki/Java_(software_platform)#History
Ernsthaft: Hast du in diesen Fällen vielleicht versucht, Java für etwas zu verwenden, für das es nicht gedacht ist?
Ich nicht, ich schreibe ohne große Not keinen Java-Code.
Hier fehlt noch der ein oder andere Link.
Auerswald hat z.B. die Steuersoftware für seine Telefonanlagen (die vorherige Generation ohne Webserver, wie z.B. 2104, 2204, 2206, 4406, 4410, Basic, Basic.2) in Java geschrieben. Wunderbar, würde auch auf Nicht-Windows-Systemen laufen, wenn Java denn auf die Schnittstellen zugreifen könnte, mit denen man die Anlage steuert. Das sind Exoten wie RS232 und USB. Wahlweise auch ein ISDN-Adapter ("ISDN-Modem").
Die AusweisApp ist ebenfalls mit Java gebastelt, und das BSI demontiert die Illusion "compile once, run everywhere" wunderbar (unter FAQ -> Betriebssysteme):
Die AusweisApp unterstützt die nachfolgend genannten Betriebssysteme:
* Windows XP 32bit / 64bit
* Windows Vista 32bit / 64bit
* Windows 7 32bit / 64bitIm Lauf des Jahres folgen darüber hinaus Versionen für
* Ubuntu ab Version 9.04 32bit
* Debian 5.0 32bit
* MacOS 10.5 MacOS 10.6
Andere Windows-Versionen, sei es das antike 2000 oder eine aktuelle Server-Version wie 2008 oder 2008 R2, werden nicht unterstützt. Bei MacOS nur die neueste und die vorherige Version. Klar, alte Apple-Hardware ist nach der regelmäßigen Keynote des Herrn Jobs sofort unbrauchbar und muß durch neue ersetzt werden. Von Debian exakt eine Version, dem Wortlaut nach nur auf 32-Bit-Plattformen, vermutlich eher nur der x86-Port. Dafür dem Wortlaut nach alle zukünfigen Ubuntu-Versionen auf 32-Bit-Plattformen, vermutlich aber auch wieder nur der x86-Port, und auch nur die bislang veröffentlichten Versionen. Keine Aussage zu LTS-Versionen. Keine Support für andere Debian-Derivaten. Kein Support für andere Distributionen. Kein Support für LFS oder T2. Kein Support für die diversen BSDs. Kein Support für Solaris.
Schön bei Twitter zusammengefaßt: "Die AusweisAPP: Java-Wasserkopf und trotzdem plattformabhängig hingeschustert. Respekt. Ein Geländewagen, der nur auf ebenen Straßen fährt."
Alexander
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".