Da ich Swing etwas hässlich finde und eclipse RCP Projekte den Hang haben, bei der Auslieferung etwas riesige Dateigrößen anzunehmen, wollte ich mich mit JavaFX beschäftigen.

Lange Zeit war das etwas schwierig, da JavaFX im openjdk von Debian und Ubuntu (zumindest hieß es das, ich habe es damals nicht überprüft) nicht enthalten war. Jetzt hat sich die Lage etwas geändert. Für Debian Jessie gibt es in den Backports sowohl Pakete für openjdk8 als auch für openjfx. Zuerst müssen diese also installiert werden:

echo "deb http://http.debian.net/debian jessie-backports main" >> /etc/apt/sources.list
apt-get update
apt-get -t jessie-backports install openjdk-8-jdk openjfx

Leider ist in dem openjfx Paket der SceneBuilder nicht enthalten und auch Oracle liefert keine binaries mehr aus. Zum Glück gibt es aber andere nette Menschen, die einem die Arbeit abnehmen und den Code compilieren. Bei Gluon kann man sich die Binaries downloaden.

Ich habe mich hier für die executable jar entschieden, da mir der Unterschied von 2,6 MB für die jar zu den 44,9 MB für die .deb doch etwas heftig erschien. Um diese dann mit e(fx)clipse benutzen zu können, muss noch ein kleines wrapper-script angelegt werden:

cp Downloads/SceneBuilder-8.0.0.jar /usr/lib/jvm/java-8-openjdk-amd64/
echo "java -jar /usr/lib/jvm/java-8-openjdk-amd64/SceneBuilder-8.0.0.jar \$1" > /usr/local/bin/fxscenebuilder
chmod +x /usr/local/bin/fxscenebuilder

Damit kann man dann in eclipse in den Einstellungen für die SceneBuilder executable den Pfad "/usr/local/bin/fxscenebuilder" angeben.