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

Siehe auch

  • SmartMirror - Marke Eigenbau
    SmartMirror: Planung und Bau eines digitalen Spiegels

    Das Internet der Dinge (IoT, Internet of Things) macht vor keinem Lebensbereich Halt. Um die Vorzüge dieses Megatrends selbst zu erfahren, habe ich mich entschlossen, das Ganze anhand eines "SmartMirrors" auszuprobieren: Dieser digitale Spiegel soll verschiedene Informationen in Form eines schicken Einrichtungsgegenstandes präsentieren.

  • Raspberry Pi 3 (Quelle: Eigene Darstellung)
    Raspbian: Konfiguration des Bootvorgangs

    Der Startvorgang des Raspberry Pi generiert üblicherweise viele Konsolenausgaben, die dem Endanwender beispielsweise durch ein eigenes Logo, das diese überdeckt, größtenteils vorenthalten werden können.

  • 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.

Cookies erleichtern die Bereitstellung dieser Homepage. Mit der Nutzung dieser Seite erklären Sie sich damit einverstanden, dass Cookies verwendet werden. Mehr Informationen
OK, verstanden