Stefan Barth Saxonia Systems AG

„Der Fantasie sind mit dem Raspberry Pi kaum Grenzen gesetzt.“

Manuel Mauky Saxonia Systems AG

„Mit JavaFX können Java-Entwickler auch einfach grafische Benutzeroberflächen für ihre Ideen umsetzen.“

Seit Herbst 2015 bietet die Raspberry Pi Foundation auch ein Touchdisplay für den Pi an. Damit ist der Pi offiziell nicht mehr nur auf die Rolle einer im Hintergrund arbeitenden Kontroll- und Steuereinheit beschränkt, sondern kann eigenständig ein User Interface anbieten. In diesem Artikel möchten wir einen Einstieg in die JavaFX-Entwicklung für den Raspberry Pi bieten und zeigen, wie damit Touchoberflächen entwickelt werden können.

Bevor wir mit der Entwicklung beginnen können, muss der Raspberry Pi noch eingerichtet werden. Als Startpunkt gehen wir hier von einem frisch installierten Raspbian aus, dem Standardbetriebssystem für den Pi. Bei Raspbian ist in der aktuellen Version bereits eine Installation von Java vorhanden. Sollte es sich bei dem eigenen Raspberry Pi um eine ältere Distribution handeln, lässt sich die Java-Version für ARM-Prozessoren aber auch nachträglich von der Oracle-Homepage herunterladen und auf dem Pi entpacken und installieren. Das JavaFX-Framework ist bei der Desktopvariante des JDKs und der JRE bereits automatisch enthalten. Daher können JavaFX-Anwendungen auf dem Desktop auch ohne Umwege mit einer installierten Oracle-JRE ausgeführt werden. Für die ARM-Plattform ist das allerdings nicht mehr der Fall. Oracle bietet zwar ein JDK speziell für die ARM-Plattform an, dieses enthält in der aktuellen Version aber nicht die JavaFX-Runtime. Daher müssen wir die JavaFX-Umgebung zunächst auf dem Raspberry Pi nachinstallieren.

Vorausgesetzte Grundlagen

Um unsere Beispiele verstehen und starten zu können, sind grundsätzliche Maven-Kenntnisse und der vertraute Umgang mit dem Raspberry Pi empfehlenswert, und auch die Kenntnis des einen oder anderen Linux-Kommandos kann nicht schaden. Der komplette Quellcode zu allen Beispielprojekten ist auf GitHub zu finden.


JavaFX-Support für die ARM-Plattform

In letzter Zeit gab es einige Verwirrung bezüglich der Unterstützung von JavaFX auf der ARM-Plattform seitens Oracle. Ausgelöst wurde dies durch das Java-Update auf Version 8u33, bei dem der offizielle Support für JavaFX aus Oracles Java SE Embedded Bundle entfernt wurde. Zu den Hintergründen dieser Entscheidung hat sich Oracle mit etwas Verzögerung geäußert: Da die ARM-Plattform nicht einheitlich standardisiert ist, sondern eine enorme Hardwarevielfalt existiert, wäre der Aufwand für professionellen Support mit ausreichend Tests für jede Hardware kaum zu leisten.

Embedded JavaFX verbleibt aber weiterhin im OpenJFX-Projekt und wird somit als Teil des OpenJDK weiter gepflegt und steht der Community zur Verfügung. Lediglich fertig kompilierte Bundles und kommerzieller Support seitens Oracle sind nun nicht mehr verfügbar. Fertige Builds werden seitdem aber auch von der Firma GluonHQ bereitgestellt, die auch für die Android- und iOS-Portierungen von JavaFX verantwortlich ist. Hier können professionelle Benutzer auch wieder kommerziellen Support bekommen.

Da der Quellcode von JavaFX als Teil des OpenJDK-Projekts frei verfügbar ist und auch der für ARM notwendige Code nach wie vor weiter gepflegt wird, könnte sich jeder die notwendige Laufzeitumgebung aus dem Quellcode heraus selbst bauen. Einfacher ist es allerdings, eine bereits vorbereitete Version zu benutzen. Die Firma GluonHQ, die auch die Entwicklung von JavaFX für mobile Plattformen wie Android und iOS vorantreibt, stellt auch ein JavaFX-Bundle für die ARM-Plattform zum Download bereit. Diese kann heruntergeladen und unter /home/pi entpackt werden.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Java Magazin 11.16 - "Automatisiertes Testen"

Alle Infos zum Heft
285704In Berührung kommen mit dem Raspberry Pi
X
- Gib Deinen Standort ein -
- or -