Seit der Version 8u33 der ARM-Version von Oracle gibt es keinen Support mehr für JavaFX-Anwendungen out-of-the-box. Die offizielle Meldung dazu findet sich hier. Aus diesem Grund benötigt ein Raspberry-System eine manuelle Erweiterung. Die Voraussetzung dafür ist ein aktuelles installiertes JDK von Oracle auf dem Raspberry-System (siehe dieser Wiki-Artikel).

Herunterladen des Fixes

http://gluonhq.com/products/mobile/javafxports/get/  

Hier ist die dritte Auswahlmöglichkeit (.zip) zu wählen und herunterzuladen: JavaFX Embedded SDK, (8.60.9), armv6 hard float

(Alternative zu obigem Link: https://chriswhocodes.com/)

Entpacken der zip-Datei und Verschieben in den JDK-Installationsordner

Mit folgendem Befehl lässt sich die heruntergeladene zip-Datei entpacken:

unzip armv6hf-sdk-8.60.9.zip -d /home/pi/Downloads  

Mit diesem Befehl lässt sich das Installationsverzeichnis des JDK ermitteln:

readlink -f $(which java)

Unter der Annahme, dass die heruntergeladene Datei im Download-Ordner des aktuellen Benutzers abgelegt wurde, müssen die enthaltenen Dateien in die richtigen Ordner verschoben werden. Eventuell müssen die Pfade der Ziel-Ordner noch angepasst werden (wenn die installierte JDK-Version beispielsweise abweicht):

cd ~/Downloads  sudo chown -R root:root armv6hf-sdk  cd armv6hf-sdk  sudo mv lib/javafx-mx.jar /opt/jdk1.8.0_111/lib/  cd rt/lib/  sudo mv j* /opt/jdk1.8.0_111/jre/lib/  sudo mv arm/* /opt/jdk1.8.0_111/jre/lib/arm/  sudo mv ext/* /opt/jdk1.8.0_111/jre/lib/ext/   

Anpassen der Auflösung

Damit eine JavaFX-Anwedung im Vollbildmodus ausgeführt wird, kann die primaryStage der Anwendung folgendermaßen modifiziert werden:

// Set window size to fullscreen  primaryStage.setMaximized(true);
primaryStage.setResizable(false);

Die zweite Anweisung verhindert das Skalieren des Fensters durch den Benutzer.

In manchen Fällen existiert trotzdem ein dicker, schwarzer Rahmen um die Anwendung herum und verhindert ein Vollbild. In diesem Fall muss in der Datei

/boot/config.txt  

die Zeile

#disable_overscan=1  

einkommentiert werden.

Ausführen der JavaFX-Anwendung

Weil eine JavaFX-Anwendung üblicherweise mit einer .jar-Datei gestartet wird, wird sie im Benutzerkontext gestartet. Das resultiert jedoch im Problem, dass dem Prozess die Rechte fehlen, auf (Touch)- und Mouse-Events zugreifen zu können.

Das Programm mit root-Rechten zu starten, dient als schneller Workaround:

sudo java-jar myJavaFXApp.jar  

See also

  • Raspberry Pi 3 (Quelle: Eigene Darstellung)
    Raspbian: Configuring the boot process

    The boot process of the Raspberry Pi is usually generating tons of console output which can be overlayed/hidden to the user by using a custom splash image.

  • Raspberry Pi
    Raspberry Pi: Erstellen eines Backups

    Weil Speichermedien, die mit dem Dateisystem FAT32 formatiert sind, eine maximale Dateigröße von 4GB vorschreiben, muss das Speichermedium (am Besten einen USB-Stick, weil er sehr kompakt ist) als NTFS formatiert werden, um diese Größenbeschränkung zu umgehen. Dies ermöglicht theoretisch beliebig große Dateien, üblicherweise reichen 8GB sogar schon aus.

    Die Formatierung des Datenträgers klappt mit OS-Bordmitteln, das Erstellen des Backups selbst wird in diesem Beitrag beschrieben.

  • SmartMirror - Marke Eigenbau
    SmartMirror: Building and setting up a digital mirror

    One of the recent mega trends is the Internet of Things (IoT), which already affects almost every part of our lives. Due to this fact I decided to setup my own project in terms of building a smart mirror. This connected mirror is intended to display several types of information on one nice screen, which acts as part of our furnishing.

Cookies make it easier for us to provide you with our services. With the usage of our services you permit us to use cookies.
Ok